@ww_nero/media 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/index.js +5 -7
- package/package.json +2 -3
package/README.md
CHANGED
package/index.js
CHANGED
|
@@ -14,7 +14,7 @@ const ASR_UPLOAD_URL = 'http://fsheep.com:10808/upload';
|
|
|
14
14
|
const ASR_SERVICE_URL = 'https://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription';
|
|
15
15
|
|
|
16
16
|
const SUPPORTED_AUDIO_TYPES = ['.mp3', '.wav'];
|
|
17
|
-
const MAX_FILE_SIZE_BYTES =
|
|
17
|
+
const MAX_FILE_SIZE_BYTES = 120 * 1024 * 1024; // 120MB
|
|
18
18
|
const LANGUAGE_HINTS = ['zh', 'en', 'ja'];
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -68,14 +68,12 @@ const uploadAudio = async (uploadUrl, audioPath) => {
|
|
|
68
68
|
const fileBuffer = fs.readFileSync(audioPath);
|
|
69
69
|
const fileName = path.basename(audioPath);
|
|
70
70
|
|
|
71
|
-
const FormData = (await import('form-data')).default;
|
|
72
71
|
const formData = new FormData();
|
|
73
|
-
formData.append('file', fileBuffer, fileName);
|
|
72
|
+
formData.append('file', new Blob([fileBuffer]), fileName);
|
|
74
73
|
|
|
75
74
|
const response = await fetch(uploadUrl, {
|
|
76
75
|
method: 'POST',
|
|
77
76
|
body: formData,
|
|
78
|
-
headers: formData.getHeaders(),
|
|
79
77
|
});
|
|
80
78
|
|
|
81
79
|
if (!response.ok) {
|
|
@@ -304,7 +302,7 @@ const asr = async ({ working_directory, audio_file }) => {
|
|
|
304
302
|
const fileSize = fs.statSync(audioPath).size;
|
|
305
303
|
if (fileSize > MAX_FILE_SIZE_BYTES) {
|
|
306
304
|
throw new Error(
|
|
307
|
-
`音频文件大小 ${(fileSize / 1024 / 1024).toFixed(2)}MB 超过限制(最大
|
|
305
|
+
`音频文件大小 ${(fileSize / 1024 / 1024).toFixed(2)}MB 超过限制(最大 120MB)。` +
|
|
308
306
|
`请先对音频进行分段处理后再逐段识别。`
|
|
309
307
|
);
|
|
310
308
|
}
|
|
@@ -339,7 +337,7 @@ const asr = async ({ working_directory, audio_file }) => {
|
|
|
339
337
|
const server = new Server(
|
|
340
338
|
{
|
|
341
339
|
name: 'media',
|
|
342
|
-
version: '1.0.
|
|
340
|
+
version: '1.0.8',
|
|
343
341
|
},
|
|
344
342
|
{
|
|
345
343
|
capabilities: {
|
|
@@ -362,7 +360,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
362
360
|
},
|
|
363
361
|
audio_file: {
|
|
364
362
|
type: 'string',
|
|
365
|
-
description: '音频文件的相对路径(相对于工作目录),支持 mp3/wav 格式,音频长度限制
|
|
363
|
+
description: '音频文件的相对路径(相对于工作目录),支持 mp3/wav 格式,音频长度限制 30 分钟以内,文件大小不超过 120MB',
|
|
366
364
|
},
|
|
367
365
|
},
|
|
368
366
|
required: ['working_directory', 'audio_file'],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ww_nero/media",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "MCP server for media processing, including ASR speech recognition",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
"index.js"
|
|
11
11
|
],
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@modelcontextprotocol/sdk": "^1.22.0"
|
|
14
|
-
"form-data": "^4.0.1"
|
|
13
|
+
"@modelcontextprotocol/sdk": "^1.22.0"
|
|
15
14
|
}
|
|
16
15
|
}
|