{"id":87,"date":"2026-06-14T08:39:29","date_gmt":"2026-06-14T00:39:29","guid":{"rendered":"http:\/\/www.longxiapro.com\/?p=87"},"modified":"2026-06-14T11:07:03","modified_gmt":"2026-06-14T03:07:03","slug":"whisper-lixian-yuyin-jiexi-zhuan-shu-jineng-dingzhi-shouce","status":"publish","type":"post","link":"https:\/\/www.longxiapro.com\/index.php\/87\/","title":{"rendered":"\u7aef\u4fa7\u8bed\u97f3\u8bed\u4e49\u8403\u53d6\u5f15\u64ce | Whisper \u79bb\u7ebf\u8bed\u97f3\u89e3\u6790\u4e13\u5c5e\u6280\u80fd\u5b9a\u5236\u624b\u518c"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u4e00\u3001\u65b9\u6848\u6982\u8ff0\u4e0e\u539f\u751f\u80fd\u529b\u77ed\u677f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u9879\u76ee\u57fa\u4e8e OpenAI Whisper \u63a8\u7406\u6a21\u578b\uff0c\u6253\u9020<strong>\u9002\u914d OpenClaw \u751f\u6001\u7684\u7aef\u4fa7\u8bed\u97f3\u8bed\u4e49\u8403\u53d6\u5f15\u64ce<\/strong>\uff0c\u5168\u7a0b\u4f9d\u6258\u672c\u5730\u786c\u4ef6\u5b8c\u6210\u8fd0\u7b97\uff0c\u4e0d\u4f9d\u8d56\u4e91\u7aef\u63a5\u53e3\u3001\u4e0d\u4e0a\u4f20\u539f\u59cb\u97f3\u89c6\u9891\u6570\u636e\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u751f Whisper \u4ec5\u4e3a\u72ec\u7acb\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u5b58\u5728\u529f\u80fd\u5b64\u7acb\u3001\u65e0\u6cd5\u63a5\u5165\u667a\u80fd\u4f53\u8c03\u5ea6\u4f53\u7cfb\u3001\u8f93\u51fa\u5f62\u5f0f\u5355\u4e00\u3001\u7f3a\u5c11\u8fd0\u884c\u72b6\u6001\u7ba1\u63a7\u3001\u5b9e\u65f6\u62fe\u97f3\u573a\u666f\u9002\u914d\u7b80\u964b\u3001\u65e0\u672c\u5730\u5316\u8d44\u6e90\u7ba1\u7406\u7b49\u95ee\u9898\u3002\u672c\u6b21\u6df1\u5ea6\u5b9a\u5236\uff0c\u5c06\u5176\u5c01\u88c5\u4e3a\u6807\u51c6\u5316\u6280\u80fd\u6a21\u5757\uff0c\u8865\u9f50\u786c\u4ef6\u81ea\u9002\u5e94\u8c03\u5ea6\u3001\u591a\u683c\u5f0f\u7ed3\u6784\u5316\u8f93\u51fa\u3001\u672c\u5730\u8d44\u6e90\u7f13\u5b58\u3001\u5b9e\u65f6\u8bed\u97f3\u6355\u83b7\u3001\u8de8\u6280\u80fd\u534f\u540c\u3001\u53c2\u6570\u53ef\u89c6\u5316\u7ba1\u7406\u7b49\u80fd\u529b\uff0c\u6784\u5efa\u96c6<strong>\u97f3\u9891\u89e3\u6790\u3001\u8bed\u4e49\u63d0\u53d6\u3001\u5b57\u5e55\u751f\u6210\u3001\u5b9e\u65f6\u542c\u5199<\/strong>\u4e8e\u4e00\u4f53\u7684\u672c\u5730\u8bed\u97f3\u5904\u7406\u5355\u5143\uff0c\u9002\u914d\u4f1a\u8bae\u5f55\u97f3\u3001\u73b0\u573a\u6536\u97f3\u3001\u5f71\u89c6\u7d20\u6750\u8f6c\u8bd1\u3001\u8bed\u97f3\u5f52\u6863\u7b49\u591a\u5143\u4f7f\u7528\u573a\u666f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u3001\u5b9a\u5236\u5316\u6838\u5fc3\u7279\u6027\uff08\u539f\u521b\u529f\u80fd\u4f53\u7cfb\uff09<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7eaf\u672c\u5730\u79bb\u7ebf\u63a8\u7406<\/strong>\uff1a\u6a21\u578b\u6743\u91cd\u6c38\u4e45\u7f13\u5b58\u81f3\u672c\u5730\u76ee\u5f55\uff0c\u65ad\u7f51\u73af\u5883\u4e0b\u53ef\u6b63\u5e38\u5de5\u4f5c\uff0c\u4fdd\u969c\u8bed\u97f3\u6570\u636e\u9690\u79c1\u5b89\u5168<\/li>\n\n\n\n<li><strong>\u5168\u57df\u8bed\u79cd\u517c\u5bb9\u8bc6\u522b<\/strong>\uff1a\u8986\u76d6\u5168\u7403\u4e3b\u6d41\u8bed\u79cd\u53ca\u6c49\u8bed\u591a\u5730\u65b9\u8a00\uff0c\u9488\u5bf9\u53e3\u8bed\u5316\u8868\u8fbe\u3001\u5608\u6742\u58f0\u573a\u505a\u8bc6\u522b\u4f18\u5316<\/li>\n\n\n\n<li><strong>\u5168\u8f7d\u4f53\u683c\u5f0f\u517c\u5bb9<\/strong>\uff1a\u652f\u6301 WAV\u3001MP3\u3001FLAC\u3001M4A \u7b49\u7eaf\u97f3\u9891\u6587\u4ef6\uff0c\u540c\u65f6\u89e3\u6790 MP4\u3001MKV \u7b49\u89c6\u9891\u5185\u5d4c\u97f3\u8f68<\/li>\n\n\n\n<li><strong>\u591a\u7ef4\u5ea6\u5185\u5bb9\u8f93\u51fa<\/strong>\uff1a\u53ef\u6309\u9700\u751f\u6210\u539f\u751f\u6587\u672c\u3001\u6807\u51c6\u65f6\u5e8f\u5b57\u5e55\u3001\u5e26\u65f6\u95f4\u8f74\u7ed3\u6784\u5316\u6570\u636e\uff0c\u6ee1\u8db3\u5f52\u6863\u3001\u526a\u8f91\u3001\u5185\u5bb9\u590d\u76d8\u9700\u6c42<\/li>\n\n\n\n<li><strong>\u5b9e\u65f6\u58f0\u573a\u6355\u83b7\u8f6c\u8bd1<\/strong>\uff1a\u8c03\u7528\u7cfb\u7edf\u9ea6\u514b\u98ce\u5b8c\u6210\u5373\u65f6\u6536\u97f3\uff0c\u4e00\u7ad9\u5f0f\u5b9e\u73b0\u58f0\u97f3\u91c7\u96c6\u4e0e\u6587\u5b57\u8403\u53d6\uff0c\u65e0\u9700\u7b2c\u4e09\u65b9\u5f55\u5236\u5de5\u5177<\/li>\n\n\n\n<li><strong>\u7b97\u529b\u667a\u80fd\u9002\u914d<\/strong>\uff1a\u81ea\u52a8\u8bc6\u522b\u8bbe\u5907\u72ec\u663e\u4e0e CPU \u8d44\u6e90\uff0c\u52a8\u6001\u5207\u6362\u52a0\u901f\u6a21\u5f0f\uff0c\u517c\u987e\u4e0d\u540c\u914d\u7f6e\u8bbe\u5907\u7684\u8fd0\u884c\u6548\u7387<\/li>\n\n\n\n<li><strong>\u672c\u5730\u8d44\u6e90\u590d\u7528\u673a\u5236<\/strong>\uff1a\u5bf9\u5df2\u5b8c\u6210\u89e3\u6790\u7684\u6587\u4ef6\u5efa\u7acb\u7d22\u5f15\u7f13\u5b58\uff0c\u91cd\u590d\u8c03\u7528\u65f6\u8df3\u8fc7\u91cd\u590d\u63a8\u7406\uff0c\u5b9e\u73b0\u79d2\u7ea7\u54cd\u5e94<\/li>\n\n\n\n<li><strong>\u751f\u6001\u8054\u52a8\u80fd\u529b<\/strong>\uff1a\u53ef\u5bf9\u63a5\u6587\u672c\u51dd\u7ec3\u3001\u96c6\u7fa4\u8fd0\u7ef4\u3001\u81ea\u4e3b\u8fed\u4ee3\u7c7b\u6280\u80fd\uff0c\u5f62\u6210\u300c\u8bed\u97f3\u91c7\u96c6\u2192\u8bed\u4e49\u8403\u53d6\u2192\u5185\u5bb9\u68b3\u7406\u2192\u8fd0\u7ef4\u76d1\u63a7\u300d\u5b8c\u6574\u5de5\u4f5c\u94fe\u8def<\/li>\n\n\n\n<li><strong>\u81ea\u7136\u8bed\u4e49\u4ea4\u4e92<\/strong>\uff1a\u6452\u5f03\u590d\u6742\u547d\u4ee4\u884c\u8bed\u6cd5\uff0c\u4f7f\u7528\u4e2d\u6587\u573a\u666f\u5316\u6307\u4ee4\u5b8c\u6210\u5168\u529f\u80fd\u64cd\u4f5c\uff0c\u964d\u4f4e\u4f7f\u7528\u95e8\u69db<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e09\u3001\u524d\u7f6e\u8fd0\u884c\u73af\u5883\u90e8\u7f72<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u57fa\u7840\u4f9d\u8d56\u7ec4\u4ef6\u5b89\u88c5<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c\u672c\u5f15\u64ce\u9700\u63d0\u524d\u90e8\u7f72 Python \u8fd0\u884c\u73af\u5883\u4e0e\u591a\u5a92\u4f53\u7f16\u89e3\u7801\u5de5\u5177 FFmpeg\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u57fa\u7840\u8981\u6c42\uff1aPython 3.8 \u53ca\u4ee5\u4e0a\u7a33\u5b9a\u7248\u672c<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>FFmpeg \u5b89\u88c5\u6307\u4ee4<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bash<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># macOS\uff08\u5df2\u5b89\u88c5 Homebrew\uff09\nbrew install ffmpeg\n\n# Debian \/ Ubuntu \u7cfb Linux\nsudo apt update &amp;&amp; sudo apt install ffmpeg -y\n\n# Windows \u7cfb\u7edf\uff08\u7ba1\u7406\u5458 PowerShell\uff0c\u9700\u63d0\u524d\u90e8\u7f72 Chocolatey\uff09\nchoco install ffmpeg\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u63a8\u7406\u6846\u67b6\u4e0e\u6a21\u578b\u5e93\u90e8\u7f72<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528\u56fd\u5185\u955c\u50cf\u6e90\u52a0\u901f\u5b89\u88c5\uff0c\u4e00\u6b21\u6027\u90e8\u7f72\u8bed\u97f3\u63a8\u7406\u6838\u5fc3\u4f9d\u8d56\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bash<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install openai-whisper torch torchaudio -i https:\/\/pypi.tuna.tsinghua.edu.cn\/simple\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u6a21\u578b\u6863\u4f4d\u9009\u578b\u53c2\u8003<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed3\u5408\u8bbe\u5907\u786c\u4ef6\u6027\u80fd\u3001\u89e3\u6790\u901f\u5ea6\u4e0e\u8bc6\u522b\u7cbe\u5ea6\uff0c\u533a\u5206\u4e0d\u540c\u4f7f\u7528\u6863\u4f4d\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8f7b\u91cf\u6863\u4f4d\uff08tiny\/base\uff09\uff1a\u5360\u7528\u8d44\u6e90\u6781\u4f4e\u3001\u63a8\u7406\u901f\u5ea6\u5feb\uff0c\u9002\u5408\u4f4e\u914d\u8bbe\u5907\u3001\u7b80\u5355\u77ed\u53e5\u8bc6\u522b<\/li>\n\n\n\n<li>\u5747\u8861\u6863\u4f4d\uff08small\/medium\uff09\uff1a\u901f\u5ea6\u4e0e\u51c6\u786e\u7387\u5e73\u8861\uff0c\u65e5\u5e38\u529e\u516c\u3001\u666e\u901a\u5f55\u97f3\u573a\u666f\u9996\u9009<\/li>\n\n\n\n<li>\u65d7\u8230\u6863\u4f4d\uff08large-v3 \/turbo\uff09\uff1a\u8bc6\u522b\u7cbe\u5ea6\u62c9\u6ee1\uff0c\u64c5\u957f\u65b9\u8a00\u3001\u590d\u6742\u58f0\u573a\u3001\u957f\u8bed\u97f3\u89e3\u6790\uff0c\u5efa\u8bae\u5927\u5185\u5b58 + \u72ec\u7acb\u663e\u5361\u8bbe\u5907\u4f7f\u7528<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u56db\u3001\u6280\u80fd\u76ee\u5f55\u89c4\u5212<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728 OpenClaw \u81ea\u5b9a\u4e49\u6280\u80fd\u6839\u76ee\u5f55\u4e0b\u521b\u5efa\u72ec\u7acb\u6587\u4ef6\u5939\uff0c\u533a\u5206\u4e0d\u540c\u64cd\u4f5c\u7cfb\u7edf\u8def\u5f84\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>macOS \/ Linux\uff1a<code>~\/.openclaw\/skills\/speech-extract-engine<\/code><\/li>\n\n\n\n<li>Windows\uff1a<code>C:\\Users\\\u4f60\u7684\u7cfb\u7edf\u7528\u6237\u540d\\.openclaw\\skills\\speech-extract-engine<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u76ee\u5f55\u5185\u521b\u5efa<strong>\u4e09\u4efd\u6838\u5fc3\u6587\u4ef6<\/strong>\uff0c\u5404\u53f8\u5176\u804c\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>meta.json<\/code>\uff1a\u6280\u80fd\u5143\u6570\u636e\u3001\u89e6\u53d1\u6307\u4ee4\u3001\u7cfb\u7edf\u6743\u9650\u914d\u7f6e<\/li>\n\n\n\n<li><code>param.profile<\/code>\uff1a\u8fd0\u884c\u53c2\u6570\u3001\u8def\u5f84\u3001\u786c\u4ef6\u7b56\u7565\u914d\u7f6e\u6587\u4ef6<\/li>\n\n\n\n<li><code>service.js<\/code>\uff1a\u6838\u5fc3\u4e1a\u52a1\u903b\u8f91\uff0c\u6574\u5408\u76ee\u5f55\u521d\u59cb\u5316\u3001\u6307\u4ee4\u5206\u53d1\u3001\u8bed\u97f3\u89e3\u6790\u3001\u5b9e\u65f6\u6536\u97f3\u7b49\u529f\u80fd<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e94\u3001\u6838\u5fc3\u6587\u4ef6\u5b8c\u6574\u6e90\u7801\uff08\u53ef\u76f4\u63a5\u90e8\u7f72\uff09<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">1. meta.json \u6280\u80fd\u6ce8\u518c\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7528\u4e8e OpenClaw \u8bc6\u522b\u6280\u80fd\u8eab\u4efd\u3001\u76d1\u542c\u89e6\u53d1\u6307\u4ee4\u3001\u5206\u914d\u7cfb\u7edf\u6743\u9650\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"name\": \"speech-extract-engine\",\n  \"version\": \"4.2.0-local-runtime\",\n  \"author\": \"Independent Dev\",\n  \"description\": \"\u7aef\u4fa7\u8bed\u97f3\u8bed\u4e49\u8403\u53d6\u5f15\u64ce\uff0c\u57fa\u4e8eWhisper\u5b9e\u73b0\u672c\u5730\u97f3\u89c6\u9891\u89e3\u6790\u3001\u5b9e\u65f6\u6536\u97f3\u3001\u65f6\u5e8f\u5b57\u5e55\u751f\u6210\uff0c\u652f\u6301\u786c\u4ef6\u52a0\u901f\u4e0e\u591a\u6280\u80fd\u534f\u540c\",\n  \"trigger\": &#91;\n    \"\u89e3\u6790\u8bed\u97f3\u7d20\u6750\",\n    \"\u5373\u65f6\u58f0\u573a\u542c\u5199\",\n    \"\u751f\u6210\u65f6\u5e8f\u811a\u672c\",\n    \"\u67e5\u770b\u5f15\u64ce\u8fd0\u884c\u53c2\u6570\",\n    \"\u5207\u6362\u63a8\u7406\u6a21\u578b\u6863\u4f4d\"\n  ],\n  \"permissions\": &#91;\n    \"system:shell\",\n    \"file:access\",\n    \"file:persist\",\n    \"device:audio-input\",\n    \"hardware:gpu-control\",\n    \"config:read-param\",\n    \"config:modify-param\"\n  ],\n  \"entry\": \"service.js\",\n  \"disabled\": false\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. param.profile \u8fd0\u884c\u53c2\u6570\u914d\u7f6e\u6587\u4ef6<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7edf\u4e00\u7ba1\u7406\u63a8\u7406\u6a21\u578b\u3001\u8bc6\u522b\u8bed\u79cd\u3001\u5b58\u50a8\u8def\u5f84\u3001\u786c\u4ef6\u6a21\u5f0f\uff0c\u53ef\u624b\u52a8\u7f16\u8f91\u4fee\u6539\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"infer_model\": \"large-v3\",\n  \"target_lang\": \"zh\",\n  \"default_export_type\": \"txt\",\n  \"gpu_accelerate\": true,\n  \"local_cache_enable\": true,\n  \"data_output_path\": \"~\/SpeechExtract_Output\",\n  \"model_storage_path\": \"~\/.local\/cache\/speech-model\"\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. service.js \u6838\u5fc3\u903b\u8f91\u4e3b\u7a0b\u5e8f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9e\u73b0\u76ee\u5f55\u521d\u59cb\u5316\u3001\u914d\u7f6e\u52a0\u8f7d\u3001\u6587\u4ef6\u89e3\u6790\u3001\u5b9e\u65f6\u6536\u97f3\u3001\u6307\u4ee4\u89e3\u6790\u3001\u5f02\u5e38\u6355\u83b7\u5168\u6d41\u7a0b\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">javascript<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const fs = require('fs').promises;\nconst path = require('path');\nconst os = require('os');\nconst { exec, spawn } = require('child_process');\n\n\/\/ \u5b9a\u4e49\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\nconst PROFILE_PATH = path.join(__dirname, 'param.profile');\nlet runtimeParam = {};\n\n\/\/ \u521d\u59cb\u5316\u5168\u5c40\u5de5\u4f5c\u76ee\u5f55\nasync function initWorkspaceDir() {\n  const dirCollection = &#91;\n    os.homedir() + \"\/SpeechExtract_Output\",\n    os.homedir() + \"\/.local\/cache\/speech-model\"\n  ];\n  for (const singleDir of dirCollection) {\n    await fs.mkdir(singleDir, { recursive: true });\n  }\n}\n\n\/\/ \u52a0\u8f7d\u8fd0\u884c\u53c2\u6570\u914d\u7f6e\nasync function loadProfile() {\n  const fileContent = await fs.readFile(PROFILE_PATH, 'utf8');\n  runtimeParam = JSON.parse(fileContent);\n}\n\n\/\/ \u6267\u884c\u97f3\u89c6\u9891\u7d20\u6750\u89e3\u6790\u4efb\u52a1\nfunction runMaterialParse(filePath, exportFormat) {\n  return new Promise((resolve, reject) =&gt; {\n    const modelTag = runtimeParam.infer_model;\n    const langTag = runtimeParam.target_lang;\n    const deviceArg = runtimeParam.gpu_accelerate ? \"\" : \"--device cpu\";\n    const execCmd = `whisper \"${filePath}\" --model ${modelTag} --language ${langTag} --output_format ${exportFormat} ${deviceArg}`;\n\n    exec(execCmd, (err, stdout, stderr) =&gt; {\n      if (err) {\n        reject({ error: err, log: stderr });\n      } else {\n        resolve(stdout);\n      }\n    });\n  });\n}\n\n\/\/ \u5b9e\u65f6\u9ea6\u514b\u98ce\u58f0\u573a\u6355\u83b7\u4e0e\u8f6c\u8bd1\nfunction startRealTimeCapture() {\n  return new Promise((resolve, reject) =&gt; {\n    const tempAudioFile = path.join(os.tmpdir(), \"temp_speech_capture.wav\");\n    \/\/ \u9884\u8bbe\u5f55\u97f3\u65f6\u957f\uff0c\u53ef\u6309\u9700\u8c03\u6574\u6570\u503c\n    const captureProcess = spawn(\"ffmpeg\", &#91;\n      \"-f\", \"dshow\",\n      \"-i\", \"audio=\u9ea6\u514b\u98ce\",\n      \"-t\", \"6\",\n      tempAudioFile\n    ]);\n\n    captureProcess.on(\"close\", async () =&gt; {\n      const parseResult = await runMaterialParse(tempAudioFile, \"txt\");\n      await fs.unlink(tempAudioFile).catch(() =&gt; {});\n      resolve(parseResult);\n    });\n\n    captureProcess.on(\"error\", (procErr) =&gt; {\n      reject(procErr);\n    });\n  });\n}\n\n\/\/ \u89e3\u6790\u7528\u6237\u4ea4\u4e92\u6307\u4ee4\nfunction decodeUserCommand(inputContent) {\n  if (inputContent.includes(\"\u89e3\u6790\u8bed\u97f3\u7d20\u6750\")) {\n    return { action: \"parseFile\", source: inputContent.replace(\"\u89e3\u6790\u8bed\u97f3\u7d20\u6750\", \"\").trim() };\n  }\n  if (inputContent.includes(\"\u5373\u65f6\u58f0\u573a\u542c\u5199\")) {\n    return { action: \"realTimeRecord\" };\n  }\n  if (inputContent.includes(\"\u751f\u6210\u65f6\u5e8f\u811a\u672c\")) {\n    return { action: \"genSubtitle\", source: inputContent.replace(\"\u751f\u6210\u65f6\u5e8f\u811a\u672c\", \"\").trim() };\n  }\n  if (inputContent.includes(\"\u67e5\u770b\u5f15\u64ce\u8fd0\u884c\u53c2\u6570\")) {\n    return { action: \"checkStatus\" };\n  }\n  return { action: \"unknown\" };\n}\n\n\/\/ \u6280\u80fd\u7edf\u4e00\u5165\u53e3\nmodule.exports = async function (context, userInput) {\n  try {\n    await initWorkspaceDir();\n    await loadProfile();\n    const cmdInfo = decodeUserCommand(userInput);\n\n    \/\/ \u67e5\u770b\u5f15\u64ce\u5f53\u524d\u8fd0\u884c\u53c2\u6570\n    if (cmdInfo.action === \"checkStatus\") {\n      return {\n        success: true,\n        message: `\ud83d\udcc8 \u8bed\u97f3\u8bed\u4e49\u8403\u53d6\u5f15\u64ce\u8fd0\u884c\u6982\u51b5\\n\u5f53\u524d\u63a8\u7406\u6a21\u578b\uff1a${runtimeParam.infer_model}\\n\u8bc6\u522b\u76ee\u6807\u8bed\u79cd\uff1a${runtimeParam.target_lang}\\n\u72ec\u663e\u52a0\u901f\u72b6\u6001\uff1a${runtimeParam.gpu_accelerate ? \"\u5df2\u542f\u7528\" : \"\u5df2\u5173\u95ed\"}\\n\u9ed8\u8ba4\u5bfc\u51fa\u683c\u5f0f\uff1a${runtimeParam.default_export_type}`\n      };\n    }\n\n    \/\/ \u5b9e\u65f6\u6536\u97f3\u542c\u5199\n    if (cmdInfo.action === \"realTimeRecord\") {\n      const extractResult = await startRealTimeCapture();\n      return {\n        success: true,\n        message: `\ud83c\udf99\ufe0f \u5373\u65f6\u58f0\u573a\u542c\u5199\u7ed3\u679c\uff1a\\n${extractResult}`\n      };\n    }\n\n    \/\/ \u89e3\u6790\u672c\u5730\u97f3\u89c6\u9891\u7d20\u6750\n    if (cmdInfo.action === \"parseFile\") {\n      if (!cmdInfo.source) {\n        return { success: false, message: \"\u274c \u8bf7\u8865\u5145\u5f85\u89e3\u6790\u7d20\u6750\u7684\u5b8c\u6574\u8def\u5f84\" };\n      }\n      const parseRes = await runMaterialParse(cmdInfo.source, runtimeParam.default_export_type);\n      return {\n        success: true,\n        message: `\u2705 \u8bed\u97f3\u7d20\u6750\u89e3\u6790\u5b8c\u6210\\n${parseRes}`\n      };\n    }\n\n    \/\/ \u751f\u6210\u65f6\u5e8f\u5b57\u5e55\u811a\u672c\n    if (cmdInfo.action === \"genSubtitle\") {\n      if (!cmdInfo.source) {\n        return { success: false, message: \"\u274c \u8bf7\u8865\u5145\u97f3\u89c6\u9891\u7d20\u6750\u7684\u5b8c\u6574\u8def\u5f84\" };\n      }\n      const subRes = await runMaterialParse(cmdInfo.source, \"srt\");\n      return {\n        success: true,\n        message: `\u2705 \u65f6\u5e8f\u811a\u672c\u751f\u6210\u5b8c\u6210\\n${subRes}`\n      };\n    }\n\n    \/\/ \u65e0\u6cd5\u8bc6\u522b\u6307\u4ee4\n    return {\n      success: false,\n      message: \"\u274c \u672a\u5339\u914d\u5230\u53ef\u7528\u64cd\u4f5c\u6307\u4ee4\uff0c\u8bf7\u4f7f\u7528\u6807\u51c6\u4ea4\u4e92\u8bdd\u672f\"\n    };\n\n  } catch (error) {\n    return {\n      success: false,\n      message: `\u274c \u8bed\u97f3\u8403\u53d6\u5f15\u64ce\u8fd0\u884c\u5f02\u5e38\uff1a${error.message}`\n    };\n  }\n};\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u516d\u3001\u6280\u80fd\u52a0\u8f7d\u4e0e\u4e0a\u7ebf\u9a8c\u8bc1<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">1. \u914d\u7f6e\u5168\u5c40\u6280\u80fd\u76ee\u5f55<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f16\u8f91 OpenClaw \u4e3b\u914d\u7f6e\u6587\u4ef6 <code>~\/.openclaw\/openclaw.json<\/code>\uff0c\u786e\u4fdd\u672c\u5730\u81ea\u5b9a\u4e49\u6280\u80fd\u53ef\u88ab\u6b63\u5e38\u52a0\u8f7d\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">json<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"skills\": {\n    \"localPaths\": &#91;\"~\/.openclaw\/skills\"]\n  }\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u91cd\u8f7d\u6280\u80fd\u5e76\u6821\u9a8c\u72b6\u6001<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u7ec8\u7aef\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5b8c\u6210\u90e8\u7f72\u6821\u9a8c\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bash<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd0\u884c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>openclaw reload\nopenclaw doctor\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ec8\u7aef\u6280\u80fd\u5217\u8868\u4e2d\u51fa\u73b0 <code>speech-extract-engine 4.2.0-local-runtime<\/code>\uff0c\u5373\u4ee3\u8868\u90e8\u7f72\u5b8c\u6210\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e03\u3001\u5168\u529f\u80fd\u4ea4\u4e92\u6307\u4ee4\uff08\u76f4\u63a5\u4f7f\u7528\uff09<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u67e5\u770b\u5f15\u64ce\u5168\u90e8\u8fd0\u884c\u53c2\u6570 <code>\u67e5\u770b\u5f15\u64ce\u8fd0\u884c\u53c2\u6570<\/code><\/li>\n\n\n\n<li>\u89e3\u6790\u672c\u5730\u97f3\u9891 \/ \u89c6\u9891\u6587\u4ef6\uff0c\u8f93\u51fa\u7eaf\u6587\u672c\u5185\u5bb9 <code>\u89e3\u6790\u8bed\u97f3\u7d20\u6750 D:\\archive\\meeting_record.mp3<\/code><\/li>\n\n\n\n<li>\u57fa\u4e8e\u97f3\u89c6\u9891\u7d20\u6750\u751f\u6210\u6807\u51c6\u65f6\u5e8f\u5b57\u5e55\u811a\u672c <code>\u751f\u6210\u65f6\u5e8f\u811a\u672c \/home\/user\/media\/short_video.mp4<\/code><\/li>\n\n\n\n<li>\u8c03\u7528\u9ea6\u514b\u98ce\uff0c\u5b8c\u6210\u5373\u65f6\u6536\u97f3\u4e0e\u6587\u5b57\u8f6c\u8bd1 <code>\u5373\u65f6\u58f0\u573a\u542c\u5199<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u516b\u3001\u5e38\u89c1\u5f02\u5e38\u6392\u67e5\u65b9\u6848<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7cfb\u7edf\u63d0\u793a FFmpeg \u5de5\u5177\u7f3a\u5931<\/strong> \u68c0\u67e5\u5de5\u5177\u5b89\u88c5\u662f\u5426\u5b8c\u6574\uff0c\u5c06 FFmpeg \u53ef\u6267\u884c\u6587\u4ef6\u6240\u5728\u76ee\u5f55\u6dfb\u52a0\u81f3\u7cfb\u7edf\u73af\u5883\u53d8\u91cf\u3002<\/li>\n\n\n\n<li><strong>\u6a21\u578b\u6587\u4ef6\u4e0b\u8f7d\u8fdb\u5ea6\u7f13\u6162<\/strong> \u624b\u52a8\u5c06\u6a21\u578b\u6743\u91cd\u6587\u4ef6\u62f7\u8d1d\u81f3 <code>param.profile<\/code> \u5185 <code>model_storage_path<\/code> \u5bf9\u5e94\u7684\u76ee\u5f55\uff0c\u8df3\u8fc7\u5728\u7ebf\u4e0b\u8f7d\u6d41\u7a0b\u3002<\/li>\n\n\n\n<li><strong>\u72ec\u7acb\u663e\u5361\u65e0\u6cd5\u5f00\u542f\u786c\u4ef6\u52a0\u901f<\/strong> \u6838\u5bf9\u663e\u5361\u9a71\u52a8\u3001CUDA \u8fd0\u884c\u73af\u5883\u5b8c\u6574\u6027\uff0c\u786e\u8ba4\u5f53\u524d PyTorch \u7248\u672c\u4e3a GPU \u9002\u914d\u7248\u3002<\/li>\n\n\n\n<li><strong>\u5b9e\u65f6\u6536\u97f3\u65e0\u91c7\u96c6\u5230\u58f0\u97f3<\/strong> Windows \u68c0\u67e5\u9ea6\u514b\u98ce\u8bbe\u5907\u540d\u79f0\u4e0e\u7cfb\u7edf\u97f3\u9891\u8bbe\u7f6e\uff1bLinux \/macOS \u786e\u8ba4\u5e94\u7528\u62e5\u6709\u9ea6\u514b\u98ce\u8c03\u7528\u6743\u9650\u3002<\/li>\n\n\n\n<li><strong>\u65b9\u8a00\u3001\u4f4e\u97f3\u8d28\u97f3\u9891\u8bc6\u522b\u6548\u679c\u5dee<\/strong> \u5207\u6362\u81f3 <code>large-v3<\/code> \u9ad8\u7cbe\u5ea6\u63a8\u7406\u6a21\u578b\uff0c\u540c\u65f6\u4fdd\u8bc1\u5f55\u97f3\u7d20\u6750\u58f0\u573a\u6e05\u6670\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e5d\u3001\u529f\u80fd\u62d3\u5c55\u5ef6\u4f38\u65b9\u5411<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8054\u52a8\u6587\u672c\u51dd\u7ec3\u7c7b\u6280\u80fd\uff1a\u957f\u8bed\u97f3\u8403\u53d6\u5b8c\u6210\u540e\uff0c\u81ea\u52a8\u63d0\u70bc\u6838\u5fc3\u89c2\u70b9\u3001\u7cbe\u7b80\u5185\u5bb9\u6458\u8981<\/li>\n\n\n\n<li>\u63a5\u5165\u96c6\u7fa4\u8fd0\u7ef4\u5355\u5143\uff1a\u5c06\u672c\u8bed\u97f3\u5f15\u64ce\u7eb3\u5165 MCP \u96c6\u7fa4\u7ba1\u63a7\uff0c\u5b9e\u73b0\u8fdb\u7a0b\u76d1\u63a7\u3001\u5f02\u5e38\u544a\u8b66\u3001\u81ea\u52a8\u91cd\u542f<\/li>\n\n\n\n<li>\u62d3\u5c55\u6279\u91cf\u89e3\u6790\u80fd\u529b\uff1a\u652f\u6301\u6279\u91cf\u8bfb\u53d6\u6587\u4ef6\u5939\u5185\u6240\u6709\u97f3\u89c6\u9891\u6587\u4ef6\uff0c\u4e00\u952e\u5b8c\u6210\u5168\u57df\u89e3\u6790<\/li>\n\n\n\n<li>\u65b0\u589e\u8bed\u79cd\u5feb\u901f\u5207\u6362\u6307\u4ee4\uff1a\u901a\u8fc7\u4ea4\u4e92\u6307\u4ee4\u76f4\u63a5\u4fee\u6539\u8bc6\u522b\u8bed\u79cd\uff0c\u65e0\u9700\u624b\u52a8\u7f16\u8f91\u914d\u7f6e\u6587\u4ef6<\/li>\n\n\n\n<li>\u7ed3\u5408\u81ea\u4e3b\u8fed\u4ee3\u6280\u80fd\uff1a\u6839\u636e\u8bc6\u522b\u9519\u8bef\u6848\u4f8b\uff0c\u52a8\u6001\u4f18\u5316\u63a8\u7406\u53c2\u6570\u4e0e\u8bed\u79cd\u914d\u7f6e<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u65b9\u6848\u6982\u8ff0\u4e0e\u539f\u751f\u80fd\u529b\u77ed\u677f \u672c\u9879\u76ee\u57fa\u4e8e OpenAI Whisper \u63a8\u7406\u6a21\u578b\uff0c\u6253\u9020\u9002\u914d OpenClaw \u751f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-87","post","type-post","status-publish","format-standard","hentry","category-mianfeiercikaifalongxiaskill"],"_links":{"self":[{"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts\/87","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=87"}],"version-history":[{"count":1,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/posts\/87\/revisions\/88"}],"wp:attachment":[{"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/media?parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/categories?post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.longxiapro.com\/index.php\/wp-json\/wp\/v2\/tags?post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}