{"id":"c4e989c7-ba5c-4630-a9c1-7699992c8f6c","shortId":"spE9xq","kind":"skill","title":"azure-speech-to-text-rest-py","tagline":"Azure Speech to Text REST API for short audio (Python). Use for simple speech recognition of audio files up to 60 seconds without the Speech SDK.","description":"# Azure Speech to Text REST API for Short Audio\n\nSimple REST API for speech-to-text transcription of short audio files (up to 60 seconds). No SDK required - just HTTP requests.\n\n## Prerequisites\n\n1. **Azure subscription** - [Create one free](https://azure.microsoft.com/free/)\n2. **Speech resource** - Create in [Azure Portal](https://portal.azure.com/#create/Microsoft.CognitiveServicesSpeechServices)\n3. **Get credentials** - After deployment, go to resource > Keys and Endpoint\n\n## Environment Variables\n\n```bash\n# Required\nAZURE_SPEECH_KEY=<your-speech-resource-key>\nAZURE_SPEECH_REGION=<region>  # e.g., eastus, westus2, westeurope\n\n# Alternative: Use endpoint directly\nAZURE_SPEECH_ENDPOINT=https://<region>.stt.speech.microsoft.com\n```\n\n## Installation\n\n```bash\npip install requests\n```\n\n## Quick Start\n\n```python\nimport os\nimport requests\n\ndef transcribe_audio(audio_file_path: str, language: str = \"en-US\") -> dict:\n    \"\"\"Transcribe short audio file (max 60 seconds) using REST API.\"\"\"\n    region = os.environ[\"AZURE_SPEECH_REGION\"]\n    api_key = os.environ[\"AZURE_SPEECH_KEY\"]\n    \n    url = f\"https://{region}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1\"\n    \n    headers = {\n        \"Ocp-Apim-Subscription-Key\": api_key,\n        \"Content-Type\": \"audio/wav; codecs=audio/pcm; samplerate=16000\",\n        \"Accept\": \"application/json\"\n    }\n    \n    params = {\n        \"language\": language,\n        \"format\": \"detailed\"  # or \"simple\"\n    }\n    \n    with open(audio_file_path, \"rb\") as audio_file:\n        response = requests.post(url, headers=headers, params=params, data=audio_file)\n    \n    response.raise_for_status()\n    return response.json()\n\n# Usage\nresult = transcribe_audio(\"audio.wav\", \"en-US\")\nprint(result[\"DisplayText\"])\n```\n\n## Audio Requirements\n\n| Format | Codec | Sample Rate | Notes |\n|--------|-------|-------------|-------|\n| WAV | PCM | 16 kHz, mono | **Recommended** |\n| OGG | OPUS | 16 kHz, mono | Smaller file size |\n\n**Limitations:**\n- Maximum 60 seconds of audio\n- For pronunciation assessment: maximum 30 seconds\n- No partial/interim results (final only)\n\n## Content-Type Headers\n\n```python\n# WAV PCM 16kHz\n\"Content-Type\": \"audio/wav; codecs=audio/pcm; samplerate=16000\"\n\n# OGG OPUS\n\"Content-Type\": \"audio/ogg; codecs=opus\"\n```\n\n## Response Formats\n\n### Simple Format (default)\n\n```python\nparams = {\"language\": \"en-US\", \"format\": \"simple\"}\n```\n\n```json\n{\n  \"RecognitionStatus\": \"Success\",\n  \"DisplayText\": \"Remind me to buy 5 pencils.\",\n  \"Offset\": \"1236645672289\",\n  \"Duration\": \"1236645672289\"\n}\n```\n\n### Detailed Format\n\n```python\nparams = {\"language\": \"en-US\", \"format\": \"detailed\"}\n```\n\n```json\n{\n  \"RecognitionStatus\": \"Success\",\n  \"Offset\": \"1236645672289\",\n  \"Duration\": \"1236645672289\",\n  \"NBest\": [\n    {\n      \"Confidence\": 0.9052885,\n      \"Display\": \"What's the weather like?\",\n      \"ITN\": \"what's the weather like\",\n      \"Lexical\": \"what's the weather like\",\n      \"MaskedITN\": \"what's the weather like\"\n    }\n  ]\n}\n```\n\n## Chunked Transfer (Recommended)\n\nFor lower latency, stream audio in chunks:\n\n```python\nimport os\nimport requests\n\ndef transcribe_chunked(audio_file_path: str, language: str = \"en-US\") -> dict:\n    \"\"\"Stream audio in chunks for lower latency.\"\"\"\n    region = os.environ[\"AZURE_SPEECH_REGION\"]\n    api_key = os.environ[\"AZURE_SPEECH_KEY\"]\n    \n    url = f\"https://{region}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1\"\n    \n    headers = {\n        \"Ocp-Apim-Subscription-Key\": api_key,\n        \"Content-Type\": \"audio/wav; codecs=audio/pcm; samplerate=16000\",\n        \"Accept\": \"application/json\",\n        \"Transfer-Encoding\": \"chunked\",\n        \"Expect\": \"100-continue\"\n    }\n    \n    params = {\"language\": language, \"format\": \"detailed\"}\n    \n    def generate_chunks(file_path: str, chunk_size: int = 1024):\n        with open(file_path, \"rb\") as f:\n            while chunk := f.read(chunk_size):\n                yield chunk\n    \n    response = requests.post(\n        url, \n        headers=headers, \n        params=params, \n        data=generate_chunks(audio_file_path)\n    )\n    \n    response.raise_for_status()\n    return response.json()\n```\n\n## Authentication Options\n\n### Option 1: Subscription Key (Simple)\n\n```python\nheaders = {\n    \"Ocp-Apim-Subscription-Key\": os.environ[\"AZURE_SPEECH_KEY\"]\n}\n```\n\n### Option 2: Bearer Token\n\n```python\nimport requests\nimport os\n\ndef get_access_token() -> str:\n    \"\"\"Get access token from the token endpoint.\"\"\"\n    region = os.environ[\"AZURE_SPEECH_REGION\"]\n    api_key = os.environ[\"AZURE_SPEECH_KEY\"]\n    \n    token_url = f\"https://{region}.api.cognitive.microsoft.com/sts/v1.0/issueToken\"\n    \n    response = requests.post(\n        token_url,\n        headers={\n            \"Ocp-Apim-Subscription-Key\": api_key,\n            \"Content-Type\": \"application/x-www-form-urlencoded\",\n            \"Content-Length\": \"0\"\n        }\n    )\n    response.raise_for_status()\n    return response.text\n\n# Use token in requests (valid for 10 minutes)\ntoken = get_access_token()\nheaders = {\n    \"Authorization\": f\"Bearer {token}\",\n    \"Content-Type\": \"audio/wav; codecs=audio/pcm; samplerate=16000\",\n    \"Accept\": \"application/json\"\n}\n```\n\n## Query Parameters\n\n| Parameter | Required | Values | Description |\n|-----------|----------|--------|-------------|\n| `language` | **Yes** | `en-US`, `de-DE`, etc. | Language of speech |\n| `format` | No | `simple`, `detailed` | Result format (default: simple) |\n| `profanity` | No | `masked`, `removed`, `raw` | Profanity handling (default: masked) |\n\n## Recognition Status Values\n\n| Status | Description |\n|--------|-------------|\n| `Success` | Recognition succeeded |\n| `NoMatch` | Speech detected but no words matched |\n| `InitialSilenceTimeout` | Only silence detected |\n| `BabbleTimeout` | Only noise detected |\n| `Error` | Internal service error |\n\n## Profanity Handling\n\n```python\n# Mask profanity with asterisks (default)\nparams = {\"language\": \"en-US\", \"profanity\": \"masked\"}\n\n# Remove profanity entirely\nparams = {\"language\": \"en-US\", \"profanity\": \"removed\"}\n\n# Include profanity as-is\nparams = {\"language\": \"en-US\", \"profanity\": \"raw\"}\n```\n\n## Error Handling\n\n```python\nimport requests\n\ndef transcribe_with_error_handling(audio_path: str, language: str = \"en-US\") -> dict | None:\n    \"\"\"Transcribe with proper error handling.\"\"\"\n    region = os.environ[\"AZURE_SPEECH_REGION\"]\n    api_key = os.environ[\"AZURE_SPEECH_KEY\"]\n    \n    url = f\"https://{region}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1\"\n    \n    try:\n        with open(audio_path, \"rb\") as audio_file:\n            response = requests.post(\n                url,\n                headers={\n                    \"Ocp-Apim-Subscription-Key\": api_key,\n                    \"Content-Type\": \"audio/wav; codecs=audio/pcm; samplerate=16000\",\n                    \"Accept\": \"application/json\"\n                },\n                params={\"language\": language, \"format\": \"detailed\"},\n                data=audio_file\n            )\n        \n        if response.status_code == 200:\n            result = response.json()\n            if result.get(\"RecognitionStatus\") == \"Success\":\n                return result\n            else:\n                print(f\"Recognition failed: {result.get('RecognitionStatus')}\")\n                return None\n        elif response.status_code == 400:\n            print(f\"Bad request: Check language code or audio format\")\n        elif response.status_code == 401:\n            print(f\"Unauthorized: Check API key or token\")\n        elif response.status_code == 403:\n            print(f\"Forbidden: Missing authorization header\")\n        else:\n            print(f\"Error {response.status_code}: {response.text}\")\n        \n        return None\n        \n    except requests.exceptions.RequestException as e:\n        print(f\"Request failed: {e}\")\n        return None\n```\n\n## Async Version\n\n```python\nimport os\nimport aiohttp\nimport asyncio\n\nasync def transcribe_async(audio_file_path: str, language: str = \"en-US\") -> dict:\n    \"\"\"Async version using aiohttp.\"\"\"\n    region = os.environ[\"AZURE_SPEECH_REGION\"]\n    api_key = os.environ[\"AZURE_SPEECH_KEY\"]\n    \n    url = f\"https://{region}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1\"\n    \n    headers = {\n        \"Ocp-Apim-Subscription-Key\": api_key,\n        \"Content-Type\": \"audio/wav; codecs=audio/pcm; samplerate=16000\",\n        \"Accept\": \"application/json\"\n    }\n    \n    params = {\"language\": language, \"format\": \"detailed\"}\n    \n    async with aiohttp.ClientSession() as session:\n        with open(audio_file_path, \"rb\") as f:\n            audio_data = f.read()\n        \n        async with session.post(url, headers=headers, params=params, data=audio_data) as response:\n            response.raise_for_status()\n            return await response.json()\n\n# Usage\nresult = asyncio.run(transcribe_async(\"audio.wav\", \"en-US\"))\nprint(result[\"DisplayText\"])\n```\n\n## Supported Languages\n\nCommon language codes (see [full list](https://learn.microsoft.com/azure/ai-services/speech-service/language-support)):\n\n| Code | Language |\n|------|----------|\n| `en-US` | English (US) |\n| `en-GB` | English (UK) |\n| `de-DE` | German |\n| `fr-FR` | French |\n| `es-ES` | Spanish (Spain) |\n| `es-MX` | Spanish (Mexico) |\n| `zh-CN` | Chinese (Mandarin) |\n| `ja-JP` | Japanese |\n| `ko-KR` | Korean |\n| `pt-BR` | Portuguese (Brazil) |\n\n## Best Practices\n\n1. **Use WAV PCM 16kHz mono** for best compatibility\n2. **Enable chunked transfer** for lower latency\n3. **Cache access tokens** for 9 minutes (valid for 10)\n4. **Specify the correct language** for accurate recognition\n5. **Use detailed format** when you need confidence scores\n6. **Handle all RecognitionStatus values** in production code\n\n## When NOT to Use This API\n\nUse the Speech SDK or Batch Transcription API instead when you need:\n\n- Audio longer than 60 seconds\n- Real-time streaming transcription\n- Partial/interim results\n- Speech translation\n- Custom speech models\n- Batch transcription of many files\n\n## Reference Files\n\n| File | Contents |\n|------|----------|\n| references/pronunciation-assessment.md | Pronunciation assessment parameters and scoring |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","speech","text","rest","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents"],"capabilities":["skill","source-sickn33","skill-azure-speech-to-text-rest-py","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-speech-to-text-rest-py","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (10,618 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:34.123Z","embedding":null,"createdAt":"2026-04-18T21:33:09.620Z","updatedAt":"2026-04-24T18:50:34.123Z","lastSeenAt":"2026-04-24T18:50:34.123Z","tsv":"'/#create/microsoft.cognitiveservicesspeechservices)':85 '/azure/ai-services/speech-service/language-support)):':977 '/free/)':75 '/speech/recognition/conversation/cognitiveservices/v1':170,415,737,896 '/sts/v1.0/issuetoken':544 '0':564 '0.9052885':339 '1':67,491,1028 '10':576,1053 '100':439 '1024':455 '1236645672289':317,319,334,336 '16':240,246 '16000':186,284,431,594,765,912 '16khz':276,1032 '2':76,507,1037 '200':779 '3':86,1044 '30':262 '4':1054 '400':800 '401':814 '403':826 '5':314,1062 '6':1071 '60':28,58,149,254,1100 '9':1049 'accept':187,432,595,766,913 'access':517,521,580,1046 'accur':1060 'action':1141 'aiohttp':859,879 'aiohttp.clientsession':922 'altern':111 'api':13,39,45,153,159,177,404,422,532,555,726,756,819,885,903,1084,1092 'api.cognitive.microsoft.com':543 'api.cognitive.microsoft.com/sts/v1.0/issuetoken':542 'apim':174,419,499,552,753,900 'applic':1135 'application/json':188,433,596,767,914 'application/x-www-form-urlencoded':560 'as-i':686 'ask':1179 'assess':260,1125 'asterisk':665 'async':853,862,865,876,920,936,959 'asyncio':861 'asyncio.run':957 'audio':16,24,42,54,133,134,146,198,203,213,223,231,257,371,382,393,480,706,741,745,774,809,866,927,933,945,1097 'audio.wav':224,960 'audio/ogg':290 'audio/pcm':184,282,429,592,763,910 'audio/wav':182,280,427,590,761,908 'authent':488 'author':583,831 'await':953 'azur':2,8,34,68,81,101,104,115,156,162,401,407,503,529,535,723,729,882,888 'azure-speech-to-text-rest-pi':1 'azure.microsoft.com':74 'azure.microsoft.com/free/)':73 'babbletimeout':651 'bad':803 'bash':99,120 'batch':1090,1114 'bearer':508,585 'best':1026,1035 'boundari':1187 'br':1023 'brazil':1025 'buy':313 'cach':1045 'check':805,818 'chines':1011 'chunk':364,373,381,395,437,448,452,464,466,469,479,1039 'clarif':1181 'clear':1154 'cn':1010 'code':778,799,807,813,825,838,971,978,1078 'codec':183,234,281,291,428,591,762,909 'common':969 'compat':1036 'confid':338,1069 'content':180,270,278,288,425,558,562,588,759,906,1122 'content-length':561 'content-typ':179,269,277,287,424,557,587,758,905 'continu':440 'correct':1057 'creat':70,79 'credenti':88 'criteria':1190 'custom':1111 'data':212,477,773,934,944,946 'de':609,610,991,992 'de-d':608,990 'def':131,379,446,515,701,863 'default':297,621,630,666 'deploy':90 'describ':1142,1158 'descript':602,636 'detail':193,320,329,445,618,772,919,1064 'detect':642,650,654 'dict':143,391,714,875 'direct':114 'display':340 'displaytext':230,309,966 'durat':318,335 'e':845,850 'e.g':107 'eastus':108 'elif':797,811,823 'els':788,833 'en':141,226,302,326,389,606,670,680,692,712,873,962,981,986 'en-gb':985 'en-us':140,225,301,325,388,605,669,679,691,711,872,961,980 'enabl':1038 'encod':436 'endpoint':96,113,117,526 'english':983,988 'entir':676 'environ':97,1170 'environment-specif':1169 'error':655,658,696,704,719,836 'es':999,1000,1004 'es-':998 'es-mx':1003 'etc':611 'except':842 'execut':1137 'expect':438 'expert':1175 'f':166,411,462,540,584,733,790,802,816,828,835,847,892,932 'f.read':465,935 'fail':792,849 'file':25,55,135,147,199,204,214,250,383,449,458,481,746,775,867,928,1118,1120,1121 'final':267 'forbidden':829 'format':192,233,294,296,304,321,328,444,615,620,771,810,918,1065 'fr':995,996 'fr-fr':994 'free':72 'french':997 'full':973 'gb':987 'generat':447,478 'german':993 'get':87,516,520,579 'go':91 'handl':629,660,697,705,720,1072 'header':171,208,209,272,416,473,474,496,549,582,750,832,897,940,941 'http':64 'import':127,129,375,377,511,513,699,856,858,860 'includ':684 'initialsilencetimeout':647 'input':1184 'instal':119,122 'instead':1093 'int':454 'intern':656 'itn':346 'ja':1014 'ja-jp':1013 'japanes':1016 'jp':1015 'json':306,330 'key':94,103,160,164,176,178,405,409,421,423,493,501,505,533,537,554,556,727,731,755,757,820,886,890,902,904 'khz':241,247 'ko':1018 'ko-kr':1017 'korean':1020 'kr':1019 'languag':138,190,191,300,324,386,442,443,603,612,668,678,690,709,769,770,806,870,916,917,968,970,979,1058 'latenc':369,398,1043 'learn.microsoft.com':976 'learn.microsoft.com/azure/ai-services/speech-service/language-support)):':975 'length':563 'lexic':352 'like':345,351,357,363 'limit':252,1146 'list':974 'longer':1098 'lower':368,397,1042 'mandarin':1012 'mani':1117 'mask':625,631,662,673 'maskeditn':358 'match':646,1155 'max':148 'maximum':253,261 'mexico':1007 'minut':577,1050 'miss':830,1192 'model':1113 'mono':242,248,1033 'mx':1005 'nbest':337 'need':1068,1096 'nois':653 'nomatch':640 'none':715,796,841,852 'note':237 'ocp':173,418,498,551,752,899 'ocp-apim-subscription-key':172,417,497,550,751,898 'offset':316,333 'ogg':244,285 'one':71 'open':197,457,740,926 'option':489,490,506 'opus':245,286,292 'os':128,376,514,857 'os.environ':155,161,400,406,502,528,534,722,728,881,887 'output':1164 'overview':1145 'param':189,210,211,299,323,441,475,476,667,677,689,768,915,942,943 'paramet':598,599,1126 'partial/interim':265,1107 'path':136,200,384,450,459,482,707,742,868,929 'pcm':239,275,1031 'pencil':315 'permiss':1185 'pip':121 'portal':82 'portal.azure.com':84 'portal.azure.com/#create/microsoft.cognitiveservicesspeechservices)':83 'portugues':1024 'practic':1027 'prerequisit':66 'print':228,789,801,815,827,834,846,964 'product':1077 'profan':623,628,659,663,672,675,682,685,694 'pronunci':259,1124 'proper':718 'pt':1022 'pt-br':1021 'py':7 'python':17,126,273,298,322,374,495,510,661,698,855 'queri':597 'quick':124 'rate':236 'raw':627,695 'rb':201,460,743,930 'real':1103 'real-tim':1102 'recognit':22,632,638,791,1061 'recognitionstatus':307,331,784,794,1074 'recommend':243,366 'refer':1119 'references/pronunciation-assessment.md':1123 'region':106,154,158,167,399,403,412,527,531,541,721,725,734,880,884,893 'remind':310 'remov':626,674,683 'request':65,123,130,378,512,573,700,804,848 'requests.exceptions.requestexception':843 'requests.post':206,471,546,748 'requir':62,100,232,600,1183 'resourc':78,93 'respons':205,293,470,545,747,948 'response.json':219,487,781,954 'response.raise':215,483,565,949 'response.status':777,798,812,824,837 'response.text':569,839 'rest':6,12,38,44,152 'result':221,229,266,619,780,787,956,965,1108 'result.get':783,793 'return':218,486,568,786,795,840,851,952 'review':1176 'safeti':1186 'sampl':235 'sampler':185,283,430,593,764,911 'scope':1157 'score':1070,1128 'sdk':33,61,1088 'second':29,59,150,255,263,1101 'see':972 'servic':657 'session':924 'session.post':938 'short':15,41,53,145 'silenc':649 'simpl':20,43,195,295,305,494,617,622 'size':251,453,467 'skill':1133,1149 'skill-azure-speech-to-text-rest-py' 'smaller':249 'source-sickn33' 'spain':1002 'spanish':1001,1006 'specif':1171 'specifi':1055 'speech':3,9,21,32,35,48,77,102,105,116,157,163,402,408,504,530,536,614,641,724,730,883,889,1087,1109,1112 'speech-to-text':47 'start':125 'status':217,485,567,633,635,951 'stop':1177 'str':137,139,385,387,451,519,708,710,869,871 'stream':370,392,1105 'stt.speech.microsoft.com':118,169,414,736,895 'stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1':168,413,735,894 'subscript':69,175,420,492,500,553,754,901 'substitut':1167 'succeed':639 'success':308,332,637,785,1189 'support':967 'task':1153 'test':1173 'text':5,11,37,50 'time':1104 'token':509,518,522,525,538,547,571,578,581,586,822,1047 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'transcrib':132,144,222,380,702,716,864,958 'transcript':51,1091,1106,1115 'transfer':365,435,1040 'transfer-encod':434 'translat':1110 'treat':1162 'tri':738 'type':181,271,279,289,426,559,589,760,907 'uk':989 'unauthor':817 'url':165,207,410,472,539,548,732,749,891,939 'us':142,227,303,327,390,607,671,681,693,713,874,963,982,984 'usag':220,955 'use':18,112,151,570,878,1029,1063,1082,1085,1131,1147 'valid':574,1051,1172 'valu':601,634,1075 'variabl':98 'version':854,877 'wav':238,274,1030 'weather':344,350,356,362 'westeurop':110 'westus2':109 'without':30 'word':645 'workflow':1139 'yes':604 'yield':468 'zh':1009 'zh-cn':1008","prices":[{"id":"24bd3991-61c3-4119-b1b0-c46fab716a01","listingId":"c4e989c7-ba5c-4630-a9c1-7699992c8f6c","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:33:09.620Z"}],"sources":[{"listingId":"c4e989c7-ba5c-4630-a9c1-7699992c8f6c","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-speech-to-text-rest-py","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-speech-to-text-rest-py","isPrimary":false,"firstSeenAt":"2026-04-18T21:33:09.620Z","lastSeenAt":"2026-04-24T18:50:34.123Z"}],"details":{"listingId":"c4e989c7-ba5c-4630-a9c1-7699992c8f6c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-speech-to-text-rest-py","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"3a2d5737a95490e2c29f18d18c6cdd53d4bdada3","skill_md_path":"skills/azure-speech-to-text-rest-py/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-speech-to-text-rest-py"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-speech-to-text-rest-py","description":"Azure Speech to Text REST API for short audio (Python). Use for simple speech recognition of audio files up to 60 seconds without the Speech SDK."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-speech-to-text-rest-py"},"updatedAt":"2026-04-24T18:50:34.123Z"}}