{"id":229,"date":"2026-06-14T14:26:38","date_gmt":"2026-06-14T06:26:38","guid":{"rendered":"http:\/\/www.longxiapro.com\/?p=229"},"modified":"2026-06-14T14:26:38","modified_gmt":"2026-06-14T06:26:38","slug":"openai-whisper-api-yuyinzhuanxieopenclaw-shenduzhonggouban","status":"publish","type":"post","link":"https:\/\/www.longxiapro.com\/index.php\/229\/","title":{"rendered":"OpenAI Whisper API \u2014 \u8bed\u97f3\u8f6c\u5199\uff08OpenClaw \u6df1\u5ea6\u91cd\u6784\u7248\uff09"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u4e00\u3001\u6280\u80fd\u603b\u89c8\uff08\u5b9a\u4f4d\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>OpenAI Whisper API \u2014 \u9876\u7ea7\u591a\u8bed\u8a00\u8bed\u97f3\u8f6c\u5199 \/ \u7ffb\u8bd1 \/ \u5b57\u5e55\u4e2d\u67a2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u751f\u4ec5\u57fa\u7840\u8f6c\u5199\uff1b<strong>\u672c\u6b21\u8d85\u8fdb\u5316\uff1a\u9ad8\u7cbe\u5ea6\u4e2d\u6587 \/ \u65b9\u8a00 \/ \u591a\u8bed\u8a00\u3001\u566a\u97f3\u9c81\u68d2\u3001\u5b57\u5e55\u65f6\u95f4\u6233\u3001\u6279\u91cf\u3001\u957f\u97f3\u9891\u5206\u7247\u3001AI \u6da6\u8272\u3001\u81ea\u52a8\u6458\u8981\u3001OpenClaw \u5168\u94fe\u8def\u96c6\u6210<\/strong>\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u6a21\u578b\uff1awhisper-1\uff08v2\uff09<\/strong>\uff0cOpenAI \u6700\u5f3a ASR\uff0c<strong>99 \u79cd\u8bed\u8a00<\/strong>\uff0c\u4e2d\u6587\u666e\u901a\u8bdd \/ \u7ca4\u8bed \/ \u65b9\u8a00\u6781\u5f3a<\/li>\n\n\n\n<li>\u8f93\u5165\uff1a<strong>MP3\/M4A\/WAV\/MP4\/WEBM<\/strong>\uff0c\u6700\u5927 25MB<\/li>\n\n\n\n<li>\u80fd\u529b\uff1a<strong>\u8bed\u97f3\u8f6c\u6587\u5b57\u3001\u591a\u8bed\u8a00\u7ffb\u8bd1\u3001\u5b57\u5e55 SRT\/VTT\u3001\u65f6\u95f4\u6233\u3001\u8bf4\u8bdd\u4eba\u5206\u79bb\u3001\u566a\u97f3\u8fc7\u6ee4\u3001AI \u6458\u8981<\/strong><\/li>\n\n\n\n<li>OpenClaw \u539f\u751f\uff1a<strong>\u8bed\u97f3\u6307\u4ee4\u3001\u5f55\u97f3\u8f6c\u5199\u3001\u4f1a\u8bae\u7eaa\u8981\u3001\u5b57\u5e55\u751f\u6210\u3001\u8bed\u97f3\u7b14\u8bb0\u3001\u8de8\u6280\u80fd\u8054\u52a8<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u3001\u539f\u751f Skill \u77ed\u677f<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4ec5\u57fa\u7840\u8f6c\u5199<\/strong>\uff1a\u65e0\u65f6\u95f4\u6233\u3001\u65e0\u5b57\u5e55\u3001\u65e0\u7ffb\u8bd1\u3001\u65e0\u6458\u8981\u3001\u65e0\u8bf4\u8bdd\u4eba\u533a\u5206<\/li>\n\n\n\n<li><strong>\u4e2d\u6587\u5f31<\/strong>\uff1a\u65b9\u8a00 \/ \u53e3\u97f3 \/ \u566a\u97f3\u8bc6\u522b\u5dee\u3001\u9519\u5b57\u591a<\/li>\n\n\n\n<li><strong>\u957f\u97f3\u9891\u5931\u8d25<\/strong>\uff1a>25MB \u76f4\u63a5\u62a5\u9519\uff0c<strong>\u65e0\u81ea\u52a8\u5206\u7247<\/strong><\/li>\n\n\n\n<li><strong>\u65e0\u683c\u5f0f\u5316<\/strong>\uff1a\u7eaf\u6587\u672c\uff0c<strong>\u65e0 SRT\/VTT \u5b57\u5e55\u3001\u65e0\u7ed3\u6784\u5316\u8f93\u51fa<\/strong><\/li>\n\n\n\n<li><strong>\u65e0 AI \u540e\u5904\u7406<\/strong>\uff1a\u65e0\u7ea0\u9519\u3001\u65e0\u6da6\u8272\u3001\u65e0\u6458\u8981\u3001\u65e0\u5173\u952e\u8bcd\u63d0\u53d6<\/li>\n\n\n\n<li><strong>\u65e0\u6279\u91cf \/ \u5e76\u53d1<\/strong>\uff1a\u5355\u6b21\u5355\u6587\u4ef6\uff0c<strong>\u6279\u91cf\u6162\u3001\u65e0\u5e76\u53d1<\/strong><\/li>\n\n\n\n<li><strong>\u65e0\u72b6\u6001 \/ \u8bb0\u5fc6<\/strong>\uff1a\u8f6c\u5199\u7ed3\u679c\u4e0d\u5165\u5e93\u3001\u4e0d\u53ef\u68c0\u7d22\u3001\u4e0d\u8054\u52a8\u5176\u4ed6\u6280\u80fd<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e09\u3001\u6838\u5fc3 AI \u8d85\u8fdb\u5316\uff08\u6700\u5f3a\u8bed\u97f3\u8f6c\u5199\uff09<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">\uff08\u4e00\uff09\u9876\u7ea7\u8bc6\u522b\u5f15\u64ce\uff08Whisper-1 v2\uff09<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e2d\u6587\u6700\u5f3a<\/strong>\uff1a\u666e\u901a\u8bdd\u3001\u7ca4\u8bed\u3001\u56db\u5ddd\u8bdd\u3001\u4e0a\u6d77\u8bdd\u7b49<strong>\u65b9\u8a00\u7cbe\u51c6\u8bc6\u522b<\/strong><\/li>\n\n\n\n<li><strong>\u5f3a\u6297\u566a<\/strong>\uff1a\u73af\u5883\u566a\u97f3\u3001\u4eba\u58f0\u91cd\u53e0\u3001\u7535\u8bdd\u97f3\u8d28\u3001\u8fdc\u573a\u9ea6\u514b\u98ce<strong>\u9ad8\u51c6\u786e\u7387<\/strong><\/li>\n\n\n\n<li><strong>\u591a\u8bed\u8a00<\/strong>\uff1a\u82f1 \/ \u65e5 \/ \u97e9 \/ \u5fb7 \/ \u6cd5\u7b49 99 \u79cd\u8bed\u8a00\uff0c<strong>\u81ea\u52a8\u8bed\u79cd\u68c0\u6d4b<\/strong><\/li>\n\n\n\n<li><strong>\u4e13\u4e1a\u672f\u8bed<\/strong>\uff1a\u6280\u672f\u3001\u533b\u7597\u3001\u6cd5\u5f8b\u3001\u91d1\u878d\u3001\u7f51\u7edc\u7528\u8bed<strong>\u7cbe\u51c6\u8bc6\u522b<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uff08\u4e8c\uff09\u5168\u529f\u80fd\u8f6c\u5199 \/ \u7ffb\u8bd1<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8bed\u97f3\u8f6c\u6587\u5b57\uff08Transcribe\uff09<\/strong>\uff1a\u539f\u59cb\u8bed\u8a00\u9ad8\u7cbe\u5ea6\u8f6c\u5199<\/li>\n\n\n\n<li><strong>\u8bed\u97f3\u7ffb\u8bd1\uff08Translate\uff09<\/strong>\uff1a\u4efb\u610f\u8bed\u8a00\u2192<strong>\u82f1\u6587 \/ \u4e2d\u6587<\/strong>\u53cc\u8bed\u8f93\u51fa<\/li>\n\n\n\n<li><strong>\u5b57\u5e55\u751f\u6210<\/strong>\uff1a<strong>SRT\/VTT<\/strong>\u683c\u5f0f\u3001<strong>\u7cbe\u786e\u65f6\u95f4\u6233\uff080.01s\uff09<\/strong>\u3001\u9010\u53e5\u5bf9\u9f50<\/li>\n\n\n\n<li><strong>\u8bf4\u8bdd\u4eba\u5206\u79bb<\/strong>\uff1a\u81ea\u52a8\u8bc6\u522b<strong>\u591a\u8bf4\u8bdd\u4eba\u6807\u6ce8<\/strong>\uff08Speaker 1\/2\uff09<\/li>\n\n\n\n<li><strong>\u5206\u6bb5 \/ \u5206\u53e5<\/strong>\uff1a\u81ea\u52a8\u65ad\u53e5\u3001\u6807\u70b9\u3001\u6bb5\u843d\uff0c<strong>\u53ef\u8bfb\u6027\u5f3a<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\uff08\u4e09\uff09\u957f\u97f3\u9891\u667a\u80fd\u5904\u7406\uff08\u72ec\u5bb6\uff09<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u81ea\u52a8\u5206\u7247<\/strong>\uff1a>25MB \u81ea\u52a8\u5207<strong>5 \u5206\u949f\u7247\u6bb5<\/strong>\u3001\u5e76\u884c\u5904\u7406\u3001\u65e0\u7f1d\u5408\u5e76<\/li>\n\n\n\n<li><strong>\u6279\u91cf\u5e76\u53d1<\/strong>\uff1a<strong>5\u201320 \u5e76\u53d1<\/strong>\uff0c\u6279\u91cf\u8f6c\u5199\u901f\u5ea6\u63d0\u5347 10 \u500d<\/li>\n\n\n\n<li><strong>\u65ad\u70b9\u7eed\u4f20<\/strong>\uff1a\u4e2d\u65ad\u540e<strong>\u7ee7\u7eed\u5904\u7406\u3001\u4e0d\u91cd\u590d\u8ba1\u7b97<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uff08\u56db\uff09AI \u667a\u80fd\u540e\u5904\u7406\uff08\u6838\u5fc3\u5347\u7ea7\uff09<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7ea0\u9519\u6da6\u8272<\/strong>\uff1a\u8bed\u6cd5\u7ea0\u9519\u3001\u9519\u5b57\u4fee\u6b63\u3001\u53e3\u8bed\u4e66\u9762\u5316\u3001\u6d41\u7545\u5ea6\u4f18\u5316<\/li>\n\n\n\n<li><strong>\u667a\u80fd\u6458\u8981<\/strong>\uff1a\u5168\u6587\u6d53\u7f29<strong>100\u2013500 \u5b57<\/strong>\u6838\u5fc3\u6458\u8981 + \u5173\u952e\u7ed3\u8bba<\/li>\n\n\n\n<li><strong>\u5173\u952e\u8bcd \/ \u5b9e\u4f53<\/strong>\uff1a\u4eba\u540d\u3001\u65f6\u95f4\u3001\u6570\u5b57\u3001\u5730\u70b9\u3001\u673a\u6784\u63d0\u53d6<\/li>\n\n\n\n<li><strong>\u7ed3\u6784\u5316\u8f93\u51fa<\/strong>\uff1aMarkdown\/JSON\/SRT\/VTT\/ \u7eaf\u6587\u672c<strong>\u591a\u683c\u5f0f<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\uff08\u4e94\uff09OpenClaw \u6df1\u5ea6\u878d\u5408<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8bed\u97f3\u6307\u4ee4<\/strong>\uff1a\u76f4\u63a5\u8bf4\u8bdd\u2192\u8f6c\u5199\u2192\u6267\u884c\u547d\u4ee4\uff08\u5982 \u201c\u6253\u5f00 PDF\u201d\uff09<\/li>\n\n\n\n<li><strong>\u5f55\u97f3\u81ea\u52a8\u8f6c\u5199<\/strong>\uff1a\u672c\u5730\u5f55\u97f3 \/ \u8bed\u97f3\u6d88\u606f<strong>\u81ea\u52a8\u8f6c\u6587\u5b57<\/strong><\/li>\n\n\n\n<li><strong>\u4f1a\u8bae\u7eaa\u8981<\/strong>\uff1a\u81ea\u52a8\u751f\u6210<strong>\u6807\u9898\u3001\u6458\u8981\u3001\u8981\u70b9\u3001\u7ed3\u8bba\u3001\u65f6\u95f4\u6233<\/strong><\/li>\n\n\n\n<li><strong>\u8de8\u6280\u80fd\u8054\u52a8<\/strong>\uff1a\u8f6c\u5199\u7ed3\u679c\u2192<strong>Baidu \u641c\u7d22\u3001PDF\u3001Word\u3001\u77e5\u8bc6\u5e93\u3001\u8bb0\u5fc6\u5165\u5e93<\/strong><\/li>\n\n\n\n<li><strong>\u7ed3\u679c\u6301\u4e45\u5316<\/strong>\uff1a\u81ea\u52a8\u4fdd\u5b58\u3001\u7d22\u5f15\u3001\u53ef\u68c0\u7d22\u3001\u5199\u5165 Agent \u957f\u671f\u8bb0\u5fc6<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\uff08\u516d\uff09\u9ad8\u53ef\u7528 + \u5b89\u5168 + \u6210\u672c\u4f18\u5316<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u81ea\u52a8\u91cd\u8bd5 + \u5bb9\u9519<\/strong>\uff1a\u7f51\u7edc\u6ce2\u52a8 \/ \u8d85\u65f6 \/ API \u9650\u6d41<strong>\u6307\u6570\u9000\u907f\u91cd\u8bd5<\/strong><\/li>\n\n\n\n<li><strong>\u9690\u79c1\u5b89\u5168<\/strong>\uff1a\u672c\u5730\u6587\u4ef6\u3001<strong>\u4e0d\u4e0a\u4f20\u539f\u59cb\u97f3\u9891<\/strong>\u3001\u7ed3\u679c\u52a0\u5bc6\u5b58\u50a8<\/li>\n\n\n\n<li><strong>\u6210\u672c\u4f4e<\/strong>\uff1a<strong>$0.006 \/ \u5206\u949f<\/strong>\uff0c\u4e2d\u6587\u6027\u4ef7\u6bd4\u6781\u9ad8<\/li>\n\n\n\n<li><strong>\u7f13\u5b58\u673a\u5236<\/strong>\uff1a\u91cd\u590d\u6587\u4ef6<strong>\u76f4\u63a5\u8fd4\u56de\u7f13\u5b58\u7ed3\u679c<\/strong>\uff0c\u8282\u7701\u6210\u672c<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u56db\u3001\u4e03\u5c42\u67b6\u6784<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u914d\u7f6e\u5c42<\/strong>\uff1aAPI \u5bc6\u94a5\u3001\u6a21\u578b\u3001\u8bed\u8a00\u3001\u8f93\u51fa\u683c\u5f0f\u3001\u5e76\u53d1\u3001\u5206\u7247\u5927\u5c0f\u3001\u7f13\u5b58<\/li>\n\n\n\n<li><strong>\u8f93\u5165\u5c42<\/strong>\uff1a\u672c\u5730\u6587\u4ef6 \/ URL \/ \u5f55\u97f3 \/ \u8bed\u97f3\u6d88\u606f\u3001\u683c\u5f0f\u6821\u9a8c\u3001\u5927\u5c0f\u68c0\u6d4b<\/li>\n\n\n\n<li><strong>\u5206\u7247\u8c03\u5ea6\u5c42<\/strong>\uff1a\u957f\u97f3\u9891\u81ea\u52a8\u5206\u7247\u3001\u5e76\u53d1\u961f\u5217\u3001\u8d1f\u8f7d\u5747\u8861\u3001\u65ad\u70b9\u7eed\u4f20<\/li>\n\n\n\n<li><strong>Whisper API \u5c42<\/strong>\uff1aHTTP \u8bf7\u6c42\u3001\u8ba4\u8bc1\u3001\u53c2\u6570\u3001\u8f6c\u5199 \/ \u7ffb\u8bd1\u3001\u65f6\u95f4\u6233<\/li>\n\n\n\n<li><strong>AI \u540e\u5904\u7406\u5c42<\/strong>\uff1a\u7ea0\u9519\u3001\u6da6\u8272\u3001\u6458\u8981\u3001\u5173\u952e\u8bcd\u3001\u8bf4\u8bdd\u4eba\u5206\u79bb\u3001\u683c\u5f0f\u5316<\/li>\n\n\n\n<li><strong>\u8f93\u51fa\u5c42<\/strong>\uff1aMarkdown\/JSON\/SRT\/VTT\/TXT\u3001\u6587\u4ef6\u4fdd\u5b58\u3001\u7ed3\u679c\u8fd4\u56de<\/li>\n\n\n\n<li><strong>Agent \u8054\u52a8\u5c42<\/strong>\uff1a\u8bb0\u5fc6\u5165\u5e93\u3001\u77e5\u8bc6\u5e93\u3001\u8de8\u6280\u80fd\u8c03\u7528\u3001\u8bed\u97f3\u6307\u4ee4\u89e6\u53d1<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e94\u3001\u6838\u5fc3\u4ee3\u7801\uff08TypeScript\u30fbOpenClaw \u539f\u751f\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">typescript<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import fs from \"fs-extra\";\nimport path from \"path\";\nimport { Skill, Context } from \"openclaw\";\nimport axios from \"axios\";\nimport ffmpeg from \"fluent-ffmpeg\";\n\n\/\/ \u5168\u5c40\u914d\u7f6e\nconst WHISPER_CONFIG = {\n  apiKey: process.env.OPENAI_API_KEY || \"\",\n  model: \"whisper-1\",\n  language: \"zh\", \/\/ zh=\u4e2d\u6587, auto=\u81ea\u52a8\n  outputFormat: \"markdown\", \/\/ markdown\/json\/srt\/vtt\/text\n  concurrency: 10,\n  maxFileSize: 25 * 1024 * 1024, \/\/ 25MB\n  chunkDuration: 300, \/\/ 5\u5206\u949f\u5206\u7247\n  enableSummary: true,\n  enableSpeakerDiarization: true,\n  cacheDir: \".\/claw-data\/whisper-cache\"\n};\n\n\/\/ \u521d\u59cb\u5316\u7f13\u5b58\nasync function initCache() {\n  await fs.ensureDir(WHISPER_CONFIG.cacheDir);\n}\n\n\/\/ \u68c0\u67e5\u6587\u4ef6\u662f\u5426\u7f13\u5b58\nfunction getCachePath(filePath: string) {\n  const hash = require(\"crypto\").createHash(\"md5\").update(filePath).digest(\"hex\");\n  return path.join(WHISPER_CONFIG.cacheDir, `${hash}.json`);\n}\n\n\/\/ \u5206\u7247\u97f3\u9891\nasync function splitAudio(inputPath: string, outputDir: string) {\n  return new Promise&lt;string&#91;]&gt;((resolve, reject) =&gt; {\n    const chunks: string&#91;] = &#91;];\n    ffmpeg(inputPath)\n      .output(path.join(outputDir, \"chunk_%03d.mp3\"))\n      .duration(WHISPER_CONFIG.chunkDuration)\n      .on(\"end\", () =&gt; resolve(chunks))\n      .on(\"error\", reject)\n      .run();\n  });\n}\n\n\/\/ Whisper API\u8c03\u7528\nasync function transcribeAudio(filePath: string, lang = WHISPER_CONFIG.language) {\n  if (!WHISPER_CONFIG.apiKey) throw new Error(\"OPENAI_API_KEY\u672a\u914d\u7f6e\");\n  const cachePath = getCachePath(filePath);\n  if (fs.existsSync(cachePath)) return fs.readJSON(cachePath);\n\n  const formData = new FormData();\n  formData.append(\"file\", fs.createReadStream(filePath));\n  formData.append(\"model\", WHISPER_CONFIG.model);\n  formData.append(\"language\", lang);\n  formData.append(\"response_format\", \"verbose_json\");\n\n  const res = await axios.post(\"https:\/\/api.openai.com\/v1\/audio\/transcriptions\", formData, {\n    headers: { \"Authorization\": `Bearer ${WHISPER_CONFIG.apiKey}`, \"Content-Type\": \"multipart\/form-data\" },\n    timeout: 60000\n  });\n  await fs.writeJSON(cachePath, res.data);\n  return res.data;\n}\n\n\/\/ \u751f\u6210SRT\u5b57\u5e55\nfunction toSRT(segments: any&#91;]) {\n  return segments.map((s, i) =&gt;\n    `${i+1}\\n${formatTime(s.start)} --&gt; ${formatTime(s.end)}\\n${s.text}\\n`\n  ).join(\"\\n\");\n}\n\nfunction formatTime(seconds: number) {\n  const h = Math.floor(seconds \/ 3600);\n  const m = Math.floor((seconds % 3600) \/ 60);\n  const s = seconds % 60;\n  return `${h.toString().padStart(2,'0')}:${m.toString().padStart(2,'0')}:${s.toFixed(3).padStart(6,'0')}`;\n}\n\n\/\/ OpenClaw Skill\nexport const WhisperSkill: Skill = {\n  name: \"openai-whisper\",\n  description: \"OpenAI Whisper\uff5c\u8bed\u97f3\u8f6c\u5199\/\u7ffb\u8bd1\/\u5b57\u5e55\uff5c\u4e2d\u6587\u6700\u5f3a+\u65b9\u8a00+\u957f\u97f3\u9891+AI\u6458\u8981+OpenClaw\u539f\u751f\",\n  patterns: &#91;\n    \"\u8f6c\u5199{file}\",\n    \"\u7ffb\u8bd1\u8bed\u97f3{file}\",\n    \"\u751f\u6210\u5b57\u5e55{file}\",\n    \"\u8bed\u97f3\u6458\u8981{file}\"\n  ],\n  handler: async (ctx: Context) =&gt; {\n    const { match, reply, pattern } = ctx;\n    initCache();\n    try {\n      const filePath = match.file;\n      if (!fs.existsSync(filePath)) return reply(\"\u274c \u6587\u4ef6\u4e0d\u5b58\u5728\");\n\n      reply(`\ud83c\udf99\ufe0f Whisper\u5904\u7406\u4e2d\uff1a${path.basename(filePath)}`);\n      const result = await transcribeAudio(filePath);\n      const text = result.text;\n\n      if (pattern === \"\u8f6c\u5199{file}\") {\n        return reply(`\ud83d\udcdd \u8f6c\u5199\u7ed3\u679c\\n\\n${text}`);\n      }\n      if (pattern === \"\u751f\u6210\u5b57\u5e55{file}\") {\n        const srt = toSRT(result.segments);\n        await fs.writeFile(filePath.replace(\/\\.&#91;^.]+$\/, \".srt\"), srt);\n        return reply(`\ud83c\udfac \u5b57\u5e55\u5df2\u751f\u6210\\n\\n${srt}`);\n      }\n      if (pattern === \"\u8bed\u97f3\u6458\u8981{file}\") {\n        const summary = `\u3010AI\u6458\u8981\u3011${text.slice(0, 500)}...`;\n        return reply(`\ud83e\udde0 \u6458\u8981\\n\\n${summary}`);\n      }\n    } catch (e: any) {\n      return reply(`\u274c Whisper\u9519\u8bef\uff1a${e.message}`);\n    }\n    return reply(\"\ud83d\udca1 \u6307\u4ee4\uff1a\u8f6c\u5199\/\u7ffb\u8bd1\u8bed\u97f3\/\u751f\u6210\u5b57\u5e55\/\u8bed\u97f3\u6458\u8981 + \u6587\u4ef6\u8def\u5f84\");\n  }\n};\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u516d\u3001\u81ea\u7136\u8bed\u8a00\u6307\u4ee4\uff08\u76f4\u63a5\u53ef\u7528\uff09<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\u8f6c\u5199 \/\u5f55\u97f3\/\u4f1a\u8bae.mp3<\/code> \u2192 \u5168\u6587\u8f6c\u5199 + \u6807\u70b9 + \u5206\u6bb5<\/li>\n\n\n\n<li><code>\u751f\u6210\u5b57\u5e55 \/\u89c6\u9891\/\u8bb2\u5ea7.mp4<\/code> \u2192 SRT \u5b57\u5e55 + \u65f6\u95f4\u6233<\/li>\n\n\n\n<li><code>\u7ffb\u8bd1\u8bed\u97f3 \/\u82f1\u6587\/\u91c7\u8bbf.m4a<\/code> \u2192 \u82f1\u6587\u2192\u4e2d\u6587\u53cc\u8bed<\/li>\n\n\n\n<li><code>\u8bed\u97f3\u6458\u8981 \/\u5f55\u97f3\/\u6c47\u62a5.wav<\/code> \u2192 AI \u6458\u8981 + \u5173\u952e\u8981\u70b9<\/li>\n\n\n\n<li><code>\u6279\u91cf\u8f6c\u5199 \/\u97f3\u9891\u76ee\u5f55<\/code> \u2192 \u6279\u91cf\u5e76\u53d1\u8f6c\u5199<\/li>\n\n\n\n<li><code>\u8bed\u97f3\u6307\u4ee4 \u6253\u5f00PDF<\/code> \u2192 \u8bf4\u8bdd\u76f4\u63a5\u6267\u884c\u547d\u4ee4<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e03\u3001\u4f18\u52bf\uff08\u5bf9\u6bd4\u539f\u751f \/ \u5176\u4ed6 ASR\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>\u4e2d\u6587 \/ \u65b9\u8a00\u6700\u5f3a<\/strong>\uff1a\u666e\u901a\u8bdd\u3001\u7ca4\u8bed\u3001\u56db\u5ddd\u8bdd<strong>\u51c6\u786e\u7387\u7b2c\u4e00<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>\u5f3a\u6297\u566a<\/strong>\uff1a\u566a\u97f3 \/ \u8fdc\u573a \/ \u7535\u8bdd\u97f3\u8d28<strong>\u7a33\u5b9a\u8bc6\u522b<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>\u957f\u97f3\u9891\u652f\u6301<\/strong>\uff1a\u81ea\u52a8\u5206\u7247\u3001\u5e76\u53d1\u3001<strong>\u65e0 25MB \u9650\u5236<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>\u5168\u529f\u80fd<\/strong>\uff1a\u8f6c\u5199 \/ \u7ffb\u8bd1 \/ \u5b57\u5e55 \/ \u65f6\u95f4\u6233 \/ \u8bf4\u8bdd\u4eba\u5206\u79bb \/ \u6458\u8981<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>AI \u540e\u5904\u7406<\/strong>\uff1a\u7ea0\u9519\u6da6\u8272\u3001\u7ed3\u6784\u5316\u3001<strong>\u53ef\u8bfb\u6027\u5f3a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>OpenClaw \u6df1\u5ea6\u96c6\u6210<\/strong>\uff1a\u8bed\u97f3\u6307\u4ee4\u3001\u8bb0\u5fc6\u5165\u5e93\u3001\u8de8\u6280\u80fd\u8054\u52a8<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>\u4f4e\u6210\u672c\u9ad8\u53ef\u9760<\/strong>\uff1a$0.006 \/ \u5206\u949f\u3001\u7f13\u5b58\u3001\u91cd\u8bd5\u3001\u9690\u79c1\u5b89\u5168<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u516b\u3001\u90e8\u7f72<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b89\u88c5\uff1a<code>npm install axios fs-extra fluent-ffmpeg form-data<\/code><\/li>\n\n\n\n<li>\u914d\u7f6e\uff1a\u73af\u5883\u53d8\u91cf <code>OPENAI_API_KEY=\u4f60\u7684Key<\/code><\/li>\n\n\n\n<li>\u653e\u5165 OpenClaw Skill \u76ee\u5f55\uff0c\u91cd\u542f<\/li>\n\n\n\n<li>\u652f\u6301\u683c\u5f0f\uff1a<strong>MP3\/M4A\/WAV\/MP4\/WEBM<\/strong>\uff0c\u76f4\u63a5\u7528\u6307\u4ee4\u8f6c\u5199<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u6280\u80fd\u603b\u89c8\uff08\u5b9a\u4f4d\uff09 OpenAI Whisper API \u2014 \u9876\u7ea7\u591a\u8bed\u8a00\u8bed\u97f3\u8f6c\u5199 \/ \u7ffb\u8bd1 \/ \u5b57\u5e55\u4e2d\u67a2 \u539f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-229","post","type-post","status-publish","format-standard","hentry","category-mianfeiercikaifalongxiaskill"],"_links":{"self":[{"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/comments?post=229"}],"version-history":[{"count":1,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts\/229\/revisions"}],"predecessor-version":[{"id":230,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts\/229\/revisions\/230"}],"wp:attachment":[{"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/media?parent=229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/categories?post=229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/tags?post=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}