dsh-audiogen 0.2.0 → 0.3.2

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.
@@ -196,3 +196,39 @@
196
196
  height: 30px;
197
197
  margin-top: 4px;
198
198
  }
199
+
200
+ .advanced {
201
+ border: 1px dashed var(--dsw-alias-border-l2, #d1d5db);
202
+ border-radius: 8px;
203
+ padding: 8px 10px;
204
+ display: flex;
205
+ flex-direction: column;
206
+ gap: 8px;
207
+ }
208
+
209
+ .advanced summary {
210
+ cursor: pointer;
211
+ font-size: 12px;
212
+ font-weight: 600;
213
+ color: var(--dsw-alias-label-secondary, #6b7280);
214
+ }
215
+
216
+ .row {
217
+ display: flex;
218
+ gap: 8px;
219
+ align-items: flex-end;
220
+ }
221
+
222
+ .row .label {
223
+ flex: 1;
224
+ }
225
+
226
+ .checkbox {
227
+ display: flex;
228
+ align-items: center;
229
+ gap: 6px;
230
+ font-size: 12px;
231
+ font-weight: 600;
232
+ color: var(--dsw-alias-label-secondary, #6b7280);
233
+ cursor: pointer;
234
+ }
@@ -9,7 +9,8 @@ export const zh = {
9
9
  'mode.tts': '文本转语音',
10
10
  'mode.music': '音乐生成',
11
11
  'mode.sfx': '音效生成',
12
- 'prompt.placeholder': '输入要朗读的文本,或描述想生成的音乐 / 音效…',
12
+ 'mode.voiceDesign': '音色设计',
13
+ 'prompt.placeholder': '输入文本、音乐/音效描述,或音色设计描述…',
13
14
  'prompt.required': '请输入文本或提示词',
14
15
  'model.label': '模型 / 音色',
15
16
  'voice.label': '音色',
@@ -40,8 +41,10 @@ export const zh = {
40
41
  'channels.title': '音频渠道',
41
42
  'channels.hint': '每个渠道是一个独立的音频厂商/API 端点,可配置多个。',
42
43
  'channels.empty': '还没有渠道。',
43
- 'channels.addProvider': '+ 添加预置厂商',
44
- 'channels.addCustom': '+ 添加自定义渠道',
44
+ 'channels.addProvider': '+ 添加提供方',
45
+ 'channels.addProviderLoading': '加载提供方…',
46
+ 'channels.addProviderFailed': '提供方目录加载失败,请点击重试。',
47
+ 'channels.addCustom': '+ 添加自定义提供方',
45
48
  'channels.edit': '编辑',
46
49
  'channels.delete': '删除',
47
50
  'channels.confirm': '确认删除',
@@ -53,17 +56,49 @@ export const zh = {
53
56
  'channels.statusReady': '可用',
54
57
  'channels.statusIncomplete': '未完成',
55
58
  'channels.untitled': '未命名渠道',
59
+ 'channel.title': '渠道设置',
60
+ 'channel.editTitle': '编辑渠道',
61
+ 'channel.provider': '提供方',
62
+ 'channel.providerCustom': '自定义渠道',
63
+ 'channel.providerCustomHint': '任意 OpenAI 兼容 TTS 或通用音频 POST 接口',
64
+ 'channel.site': '官网',
56
65
  'channel.name': '名称',
66
+ 'channel.namePlaceholder': '渠道名称(如:MiniMax 主渠道)',
57
67
  'channel.apiUrl': 'API 地址',
68
+ 'channel.apiUrlPlaceholder': '提供方默认地址',
69
+ 'channel.apiUrlHint': '留空使用提供方默认地址。',
58
70
  'channel.apiKey': 'API 密钥',
59
- 'channel.apiKeyHint': '留空则保持当前密钥;输入新值可更换。',
60
- 'channel.models': '模型 / 音色(每行一个:别名=上游ID)',
61
- 'channel.modelsHint': '每行格式:别名=上游ID,可加 @分类(tts/music/sfx/voice_design/voice_clone);例如 tts-1=tts-1 @tts 或 Rachel=21m00Tcm4TlvDq8ikWAM @tts',
62
- 'channel.default': '设为默认',
71
+ 'channel.apiKeyHint': '输入 API 密钥后即可使用该渠道。',
72
+ 'channel.apiKeyStoredHint': '已保存密钥;留空保持不变,输入新值可更换。',
73
+ 'channel.clearKey': '清除密钥',
74
+ 'channel.customSettings': '自定义设置',
75
+ 'channel.modelsTitle': '模型 / 音色目录',
76
+ 'channel.modelsCount': '{n} 个模型/音色',
77
+ 'channel.modelsNone': '未添加',
78
+ 'channel.modelsEmpty': '尚未添加模型/音色:面板与 Agent 将无可选模型;保存后仍可直接输入目录外的 ID 进行生成。',
79
+ 'channel.modelAlias': '显示名称',
80
+ 'channel.modelId': '上游 ID',
81
+ 'channel.modelCategory': '分类',
82
+ 'channel.category.auto': '自动',
83
+ 'channel.category.tts': '语音',
84
+ 'channel.category.music': '音乐',
85
+ 'channel.category.sfx': '音效',
86
+ 'channel.category.voice_design': '音色设计',
87
+ 'channel.category.voice_clone': '音色克隆',
88
+ 'channel.addModel': '添加模型',
89
+ 'channel.removeModel': '移除',
90
+ 'channel.fetchModels': '获取可用模型',
91
+ 'channel.fetchingModels': '获取中…',
92
+ 'channel.discoverNeedsUrlKey': '填写 API 地址与密钥后可获取模型',
93
+ 'channel.fetchEmpty': '未发现音频相关模型。',
94
+ 'channel.discoverSource': '来源:{source}',
95
+ 'channel.candidates': '发现 {n} 个可用模型/音色',
96
+ 'channel.selectAll': '全选',
97
+ 'channel.clearSelection': '清空',
98
+ 'channel.adoptSelected': '添加所选({n})',
99
+ 'channel.default': '设为默认渠道',
63
100
  'channel.cancel': '取消',
64
101
  'channel.save': '保存渠道',
65
- 'presets.title': '预置厂商',
66
- 'presets.custom': '自定义渠道',
67
102
  } as const
68
103
 
69
104
  export type AudioGenKey = keyof typeof zh
@@ -75,7 +110,8 @@ export const en: Record<AudioGenKey, string> = {
75
110
  'mode.tts': 'Text to speech',
76
111
  'mode.music': 'Music',
77
112
  'mode.sfx': 'Sound effects',
78
- 'prompt.placeholder': 'Text to speak, or a description of the music / sound effect…',
113
+ 'mode.voiceDesign': 'Voice design',
114
+ 'prompt.placeholder': 'Text to speak, or a music/SFX/voice-design description…',
79
115
  'prompt.required': 'Prompt or text is required',
80
116
  'model.label': 'Model / voice',
81
117
  'voice.label': 'Voice',
@@ -106,8 +142,10 @@ export const en: Record<AudioGenKey, string> = {
106
142
  'channels.title': 'Audio channels',
107
143
  'channels.hint': 'Each channel is an independent audio vendor/API endpoint.',
108
144
  'channels.empty': 'No channels yet.',
109
- 'channels.addProvider': '+ Add preset vendor',
110
- 'channels.addCustom': '+ Add custom channel',
145
+ 'channels.addProvider': '+ Add provider',
146
+ 'channels.addProviderLoading': 'Loading providers…',
147
+ 'channels.addProviderFailed': 'Failed to load the provider catalog. Click to retry.',
148
+ 'channels.addCustom': '+ Add custom provider',
111
149
  'channels.edit': 'Edit',
112
150
  'channels.delete': 'Delete',
113
151
  'channels.confirm': 'Confirm delete',
@@ -119,15 +157,47 @@ export const en: Record<AudioGenKey, string> = {
119
157
  'channels.statusReady': 'Ready',
120
158
  'channels.statusIncomplete': 'Incomplete',
121
159
  'channels.untitled': 'Untitled channel',
160
+ 'channel.title': 'Channel settings',
161
+ 'channel.editTitle': 'Edit channel',
162
+ 'channel.provider': 'Provider',
163
+ 'channel.providerCustom': 'Custom provider',
164
+ 'channel.providerCustomHint': 'Any OpenAI-compatible TTS or generic audio POST endpoint',
165
+ 'channel.site': 'Website',
122
166
  'channel.name': 'Name',
167
+ 'channel.namePlaceholder': 'Channel name (e.g. MiniMax main)',
123
168
  'channel.apiUrl': 'API URL',
169
+ 'channel.apiUrlPlaceholder': 'Provider default',
170
+ 'channel.apiUrlHint': 'Leave blank to use the provider default.',
124
171
  'channel.apiKey': 'API key',
125
- 'channel.apiKeyHint': 'Leave blank to keep the current key.',
126
- 'channel.models': 'Models / voices (one per line: alias=upstreamId)',
127
- 'channel.modelsHint': 'One per line: alias=upstreamId, optional @category (tts/music/sfx/voice_design/voice_clone); e.g. tts-1=tts-1 @tts or Rachel=21m00Tcm4TlvDq8ikWAM @tts',
128
- 'channel.default': 'Set default',
172
+ 'channel.apiKeyHint': 'Enter the API key to use this channel.',
173
+ 'channel.apiKeyStoredHint': 'A key is stored; leave blank to keep it, or enter a new one.',
174
+ 'channel.clearKey': 'Clear key',
175
+ 'channel.customSettings': 'Custom settings',
176
+ 'channel.modelsTitle': 'Model / voice catalog',
177
+ 'channel.modelsCount': '{n} model(s)/voice(s)',
178
+ 'channel.modelsNone': 'None',
179
+ 'channel.modelsEmpty': 'No models yet: the panel and agents will have nothing to pick. You can still send an ID outside the catalog after saving.',
180
+ 'channel.modelAlias': 'Display name',
181
+ 'channel.modelId': 'Upstream ID',
182
+ 'channel.modelCategory': 'Category',
183
+ 'channel.category.auto': 'Auto',
184
+ 'channel.category.tts': 'Speech',
185
+ 'channel.category.music': 'Music',
186
+ 'channel.category.sfx': 'SFX',
187
+ 'channel.category.voice_design': 'Voice design',
188
+ 'channel.category.voice_clone': 'Voice clone',
189
+ 'channel.addModel': 'Add model',
190
+ 'channel.removeModel': 'Remove',
191
+ 'channel.fetchModels': 'Fetch available models',
192
+ 'channel.fetchingModels': 'Fetching…',
193
+ 'channel.discoverNeedsUrlKey': 'Fill in the API URL and key to fetch models',
194
+ 'channel.fetchEmpty': 'No audio-related models found.',
195
+ 'channel.discoverSource': 'Source: {source}',
196
+ 'channel.candidates': '{n} available model(s)/voice(s) found',
197
+ 'channel.selectAll': 'Select all',
198
+ 'channel.clearSelection': 'Clear',
199
+ 'channel.adoptSelected': 'Add selected ({n})',
200
+ 'channel.default': 'Set as default channel',
129
201
  'channel.cancel': 'Cancel',
130
202
  'channel.save': 'Save channel',
131
- 'presets.title': 'Preset vendors',
132
- 'presets.custom': 'Custom channel',
133
203
  }