Introduction¶
When running DSH sessions, human attention is often not on the window: the session may have ended long ago, or it might be stuck on a permission confirmation or option popup waiting for you to handle it, and only when looking back do you realize you’ve been waiting for a long time. These types of events are best suited for sound reminders—a beep tells you it’s time to look back.
The dsh-sound-lab introduced below solves this problem. It is a sound workshop for the DSH Web GUI: selecting sound effects for four dialogue trigger events, generating AI character voices, and uploading and managing your own sound library—all done by clicking in the settings dialog without writing code; at the same time, it includes a built-in floating desktop pet for the Arknights character Angelina.
What is it¶
Maintained by miiaowuwu, dsh-sound-lab is a DSH plugin (current version 1.3.2, MIT License). DSH’s philosophy is “everything is a plugin,” and this plugin does three things on the Web GUI side:
- Event Sounds: Four trigger conditions—session ended, option popup, permission request, stop—each can be independently enabled and assigned a sound effect;
- Sound Library: Upload and manage local audio; non-built-in sounds can be renamed, and hidden built-in sounds can be recovered;
- AI Voice: Integrates with Aliyun Bailian to generate speech from dialogue lines using cloned voices, with one-click addition to the sound library.
The desktop side features a floating window: by default, it is the Angelina sprite animation desktop pet, but it can also be switched to a circular ball.
Core Features¶
Trigger Event Sounds¶
The settings dialog provides 4 trigger conditions: Session Ended / Option Popup / Permission Request / Stop. Each trigger condition has an independent enable switch and a sound effect dropdown, where you can choose built-in ringtones (Web Audio arpeggios), silence, or a specific sound effect from the library.
Among them, option popups and permission requests are “Attention Events”: they ring as soon as the popup appears, and take priority over completion sounds—ensuring that events requiring your action are not missed.
Volume is adjusted using a 0–100% slider. The test sound dropdown combined with the ▶ button allows for instant preview, and there is also a reset button.
Floating Desktop Pet & Appearance¶
The default form is the Angelina animated desktop pet (60fps sprites, half-speed playback):
- Stands idle; clicking greets you; draggable;
- Docking at the screen edge: docked on left/right hides 40% and rotates 30°; docked at top hangs upside down and hides 80%; docked at bottom does not hide;
- Falls asleep after 90 seconds of inactivity;
- Celebrates when a session ends, looks confused during option popups and permission requests, and falls over during stops and errors.
There are 3 appearances: Whale Girl (default) / Pure White / Pure Black, and voice names are customizable. If you don’t want to use the character animation, you can switch to a circular ball: when dragged to the screen edge, the ball folds into a hemisphere (showing only a ">" icon), and clicking opens the settings dialog.
Event switching animations have a 150ms fade-in transition to avoid abrupt jumps between actions.
Sound Library Management¶
Sounds come from local audio files in the plugin’s sounds/ directory, supporting mp3/wav/ogg/m4a/flac/opus/aac/wma/webm formats, managed by the sounds.json control file. In the settings dialog you can:
- Select a file or drag and drop to upload;
- Delete sounds, non-built-in sounds can be renamed;
- Recover hidden built-in sounds.
The plugin comes with 3 built-in sounds: "hirari do~" / "Huh?" / "AWAWA!", which cannot be deleted or renamed—deleting them just soft-hides them and they can be recovered at any time; hidden sounds can be previewed and played instantly.
Audio is provided by the host-side /dsh-sounds-control static service, supporting Range/206 chunking, ETag, and streaming.
AI Voice Speech Generation¶
The AI Voice dialog requires you to provide your own Aliyun Bailian API Key and Cloned Voice ID. After entering them, type the dialogue lines to generate speech. It supports custom filenames, previewing, and deleting; if satisfied, you can add it to the sound library with one click and it will be automatically registered, allowing you to select it in the trigger condition dropdown later. Token costs are borne by you.
Configuration Persistence¶
Settings are persisted with double writing: one copy stored in localStorage, and one copy stored in the host-side config file, so they are not lost after restart.
Installation and Activation¶
Two installation methods are available for both Desktop and Web users; choose one.
Method A: Setup Installer¶
- If DSH has not been started yet, start it once to initialize the profile, then exit;
- Download
dsh-sound-lab-Setup-1.3.2-x64.exefrom GitHub Releases and double-click to install; - The installer will automatically restart DSH.
The installer deploys the plugin to $DSH_HOME/plugins/dsh-sound-lab and registers it to all initialized profiles (web, desktop, etc. share the same copy) via the official dsh plugin command. For updates, simply re-download and run the latest Setup package; old versions are automatically overwritten without needing to uninstall first. To uninstall, double-click dsh-sound-lab-UnSetup-1.3.2-x64.exe, and DSH will automatically restart after completion.
Method B: CLI Command¶
Requires a Node.js environment. Execute one of the two based on how you run DSH.
Desktop users:
npx @deepseek-ai/dsh plugin --profile desktop add dsh-sound-lab --config.minimumReleaseAge=0
Web users (running via npx dsh web):
npx @deepseek-ai/dsh plugin --profile web add dsh-sound-lab --config.minimumReleaseAge=0
Both commands include --config.minimumReleaseAge=0. After installation, restart DSH:
npx @deepseek-ai/dsh web
After the steps above, if you see the floating desktop pet (or ball) after restart, the plugin is active. Click it to open the settings dialog.
For development scenarios, there are two convenience scripts: npm run setup automatically detects all local profiles and registers the plugin; npm run setup:deploy deploys to $DSH_HOME/plugins and points each profile to that copy.
Typical Usage¶
Set up a reminder sound for “Session Ended”:
- Click the floating pet or ball to open the settings dialog;
- Check the enable switch for “Session Ended” in the trigger conditions;
- Select “Built-in Ringtone” from the sound dropdown, or select an existing sound from the library;
- Use the test sound dropdown + ▶ to preview and confirm the effect, then adjust the volume with the slider.
Upload your own sounds:
- Select a file or drag and drop to upload in the sound library area (supports mp3/wav/ogg/m4a/flac/opus/aac/wma/webm);
- Non-built-in sounds can be renamed;
- Go back to the trigger condition dropdown and select the just-uploaded sound.
Generate character voice and add to library:
- Prepare your Aliyun Bailian API Key and Cloned Voice ID;
- Open the AI Voice dialog, enter the Key and Voice ID, and type the dialogue lines;
- Set the filename and preview after generation;
- Add to sound library with one click and automatically register, so you can select it in the trigger condition dropdown.
Suitable Scenarios and Precautions¶
Suitable users:
- People who often keep DSH sessions in the background and want sound reminders when events occur;
- People who want to maintain their own sound library or generate character voices using cloned voices;
- Users who like desktop pets and want a bit of desktop atmosphere—if you don’t like it, you can switch to the ball or change the appearance.
Pre-use precautions:
- The plugin runs with the permissions of the current DSH process; it is recommended to read the source code before installing to ensure the license (MIT) meets your requirements;
- This is a fan project for Arknights’ Angelina and is for personal study and entertainment only; commercial use is prohibited;
- AI voice generation requires you to provide your own Aliyun Bailian API Key and Cloned Voice ID; token costs are borne by you;
- The 3 built-in sounds cannot be deleted or renamed; deleting them just soft-hides them and can be recovered at any time.
Conclusion¶
dsh-sound-lab turns event reminders into visual clicks: four trigger conditions each paired with their own sound effects, uploading and managing your own sound library, and even generating voices on the spot with cloned voices; paired with a desktop pet, background sessions have a clear sense of presence. If you are using the DSH Web GUI, give it a try.
- Community Directory: https://www.skillhub.cn/plugins/miiaowuwu/dsh-sound-lab (The community directory is an independent site with no official affiliation to DeepSeek / Hypothesis)
- GitHub: https://github.com/miiaowuwu/dsh-sound-lab