agentvibes 1.1.3 → 2.0.0
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/.claude/commands/agent-vibes/provider.md +54 -0
- package/.claude/hooks/piper-download-voices.sh +133 -0
- package/.claude/hooks/piper-voice-manager.sh +194 -0
- package/.claude/hooks/play-tts-elevenlabs.sh +201 -0
- package/.claude/hooks/play-tts-piper.sh +175 -0
- package/.claude/hooks/play-tts.sh.backup-20251005-163851 +138 -0
- package/.claude/hooks/provider-commands.sh +374 -0
- package/.claude/hooks/provider-manager.sh +196 -0
- package/.claude/language-voices.yaml +372 -0
- package/.claude/personalities/backups/angry.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/annoying.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/crass.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/dramatic.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/dry-humor.md.backup-20251005 +52 -0
- package/.claude/personalities/backups/flirty.md.backup-20251005 +22 -0
- package/.claude/personalities/backups/funny.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/grandpa.md.backup-20251005 +34 -0
- package/.claude/personalities/backups/millennial.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/moody.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/normal.md.backup-20251005 +18 -0
- package/.claude/personalities/backups/pirate.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/poetic.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/professional.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/robot.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/sarcastic.md.backup-20251005 +40 -0
- package/.claude/personalities/backups/sassy.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/surfer-dude.md.backup-20251005 +16 -0
- package/.claude/personalities/backups/zen.md.backup-20251005 +16 -0
- package/.claude/piper-voices/en_US-lessac-medium.onnx +0 -0
- package/.claude/piper-voices/en_US-lessac-medium.onnx.json +493 -0
- package/.mcp-minimal.json +53 -0
- package/README.md +228 -27
- package/RELEASE_NOTES_V2.md +482 -0
- package/agentvibes.org/.mcp-minimal.json +60 -0
- package/agentvibes.org/CHANGELOG.md +56 -0
- package/agentvibes.org/README.md +93 -0
- package/agentvibes.org/app/(auth)/layout.tsx +15 -0
- package/agentvibes.org/app/(auth)/reset-password/page.tsx +45 -0
- package/agentvibes.org/app/(auth)/signin/page.tsx +82 -0
- package/agentvibes.org/app/(auth)/signup/page.tsx +104 -0
- package/agentvibes.org/app/(default)/layout.tsx +31 -0
- package/agentvibes.org/app/(default)/page.tsx +20 -0
- package/agentvibes.org/app/api/hello/route.ts +3 -0
- package/agentvibes.org/app/css/additional-styles/theme.css +82 -0
- package/agentvibes.org/app/css/additional-styles/utility-patterns.css +55 -0
- package/agentvibes.org/app/css/style.css +100 -0
- package/agentvibes.org/app/layout.tsx +63 -0
- package/agentvibes.org/components/cta.tsx +58 -0
- package/agentvibes.org/components/features.tsx +256 -0
- package/agentvibes.org/components/hero-home.tsx +97 -0
- package/agentvibes.org/components/modal-video.tsx +137 -0
- package/agentvibes.org/components/page-illustration.tsx +55 -0
- package/agentvibes.org/components/spotlight.tsx +77 -0
- package/agentvibes.org/components/testimonials.tsx +282 -0
- package/agentvibes.org/components/ui/footer.tsx +82 -0
- package/agentvibes.org/components/ui/header.tsx +44 -0
- package/agentvibes.org/components/ui/logo.tsx +10 -0
- package/agentvibes.org/components/workflows.tsx +176 -0
- package/agentvibes.org/next.config.js +4 -0
- package/agentvibes.org/package-lock.json +1974 -0
- package/agentvibes.org/package.json +30 -0
- package/agentvibes.org/pnpm-lock.yaml +1141 -0
- package/agentvibes.org/postcss.config.js +5 -0
- package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
- package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
- package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
- package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
- package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
- package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
- package/agentvibes.org/public/favicon.ico +0 -0
- package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
- package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
- package/agentvibes.org/public/images/blurred-shape-gray.svg +1 -0
- package/agentvibes.org/public/images/blurred-shape.svg +1 -0
- package/agentvibes.org/public/images/client-logo-01.svg +1 -0
- package/agentvibes.org/public/images/client-logo-02.svg +1 -0
- package/agentvibes.org/public/images/client-logo-03.svg +1 -0
- package/agentvibes.org/public/images/client-logo-04.svg +1 -0
- package/agentvibes.org/public/images/client-logo-05.svg +1 -0
- package/agentvibes.org/public/images/client-logo-06.svg +1 -0
- package/agentvibes.org/public/images/client-logo-07.svg +1 -0
- package/agentvibes.org/public/images/client-logo-08.svg +1 -0
- package/agentvibes.org/public/images/client-logo-09.svg +1 -0
- package/agentvibes.org/public/images/features.png +0 -0
- package/agentvibes.org/public/images/footer-illustration.svg +1 -0
- package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
- package/agentvibes.org/public/images/logo.svg +1 -0
- package/agentvibes.org/public/images/page-illustration.svg +1 -0
- package/agentvibes.org/public/images/secondary-illustration.svg +1 -0
- package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
- package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
- package/agentvibes.org/public/images/workflow-01.png +0 -0
- package/agentvibes.org/public/images/workflow-02.png +0 -0
- package/agentvibes.org/public/images/workflow-03.png +0 -0
- package/agentvibes.org/public/videos/video.mp4 +0 -0
- package/agentvibes.org/tsconfig.json +28 -0
- package/agentvibes.org/utils/useMasonry.tsx +67 -0
- package/agentvibes.org/utils/useMousePosition.tsx +27 -0
- package/docs/ai-optimized-documentation-standards.md +306 -0
- package/docs/architecture/provider-system.md +574 -0
- package/docs/voice-mapping-format.md +218 -0
- package/package.json +3 -2
- package/scripts/piper-voice/README.md +145 -0
- package/scripts/piper-voice/wsl-install.sh +193 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# @fileoverview TTS Provider Management Functions
|
|
4
|
+
# @context Core provider abstraction layer for multi-provider TTS system
|
|
5
|
+
# @architecture Provides functions to get/set/list/validate TTS providers
|
|
6
|
+
# @dependencies None - pure bash implementation
|
|
7
|
+
# @entrypoints Sourced by play-tts.sh and provider management commands
|
|
8
|
+
# @patterns File-based state management with project-local and global fallback
|
|
9
|
+
# @related play-tts.sh, play-tts-elevenlabs.sh, GitHub Issue #25
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
# @function get_provider_config_path
|
|
13
|
+
# @intent Determine path to tts-provider.txt file
|
|
14
|
+
# @why Supports both project-local (.claude/) and global (~/.claude/) storage
|
|
15
|
+
# @returns Echoes path to provider config file
|
|
16
|
+
# @exitcode 0=always succeeds
|
|
17
|
+
# @sideeffects None
|
|
18
|
+
# @edgecases Creates parent directory if missing
|
|
19
|
+
get_provider_config_path() {
|
|
20
|
+
local provider_file
|
|
21
|
+
|
|
22
|
+
# Check project-local first
|
|
23
|
+
if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
|
|
24
|
+
provider_file="$CLAUDE_PROJECT_DIR/.claude/tts-provider.txt"
|
|
25
|
+
else
|
|
26
|
+
# Search up directory tree for .claude/
|
|
27
|
+
local current_dir="$PWD"
|
|
28
|
+
while [[ "$current_dir" != "/" ]]; do
|
|
29
|
+
if [[ -d "$current_dir/.claude" ]]; then
|
|
30
|
+
provider_file="$current_dir/.claude/tts-provider.txt"
|
|
31
|
+
break
|
|
32
|
+
fi
|
|
33
|
+
current_dir=$(dirname "$current_dir")
|
|
34
|
+
done
|
|
35
|
+
|
|
36
|
+
# Fallback to global if no project .claude found
|
|
37
|
+
if [[ -z "$provider_file" ]]; then
|
|
38
|
+
provider_file="$HOME/.claude/tts-provider.txt"
|
|
39
|
+
fi
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
echo "$provider_file"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
# @function get_active_provider
|
|
46
|
+
# @intent Read currently active TTS provider from config file
|
|
47
|
+
# @why Central function for determining which provider to use
|
|
48
|
+
# @returns Echoes provider name (e.g., "elevenlabs", "piper")
|
|
49
|
+
# @exitcode 0=success
|
|
50
|
+
# @sideeffects None
|
|
51
|
+
# @edgecases Returns "elevenlabs" if file missing or empty (default)
|
|
52
|
+
get_active_provider() {
|
|
53
|
+
local provider_file
|
|
54
|
+
provider_file=$(get_provider_config_path)
|
|
55
|
+
|
|
56
|
+
# Read provider from file, default to elevenlabs if not found
|
|
57
|
+
if [[ -f "$provider_file" ]]; then
|
|
58
|
+
local provider
|
|
59
|
+
provider=$(cat "$provider_file" | tr -d '[:space:]')
|
|
60
|
+
if [[ -n "$provider" ]]; then
|
|
61
|
+
echo "$provider"
|
|
62
|
+
return 0
|
|
63
|
+
fi
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
# Default to elevenlabs
|
|
67
|
+
echo "elevenlabs"
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
# @function set_active_provider
|
|
71
|
+
# @intent Write active provider to config file
|
|
72
|
+
# @why Allows runtime provider switching without restart
|
|
73
|
+
# @param $1 {string} provider - Provider name (e.g., "elevenlabs", "piper")
|
|
74
|
+
# @returns None (outputs success/error message)
|
|
75
|
+
# @exitcode 0=success, 1=invalid provider
|
|
76
|
+
# @sideeffects Writes to tts-provider.txt file
|
|
77
|
+
# @edgecases Creates file and parent directory if missing
|
|
78
|
+
set_active_provider() {
|
|
79
|
+
local provider="$1"
|
|
80
|
+
|
|
81
|
+
if [[ -z "$provider" ]]; then
|
|
82
|
+
echo "❌ Error: Provider name required"
|
|
83
|
+
echo "Usage: set_active_provider <provider_name>"
|
|
84
|
+
return 1
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
# Validate provider exists
|
|
88
|
+
if ! validate_provider "$provider"; then
|
|
89
|
+
echo "❌ Error: Provider '$provider' not found"
|
|
90
|
+
echo "Available providers:"
|
|
91
|
+
list_providers
|
|
92
|
+
return 1
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
local provider_file
|
|
96
|
+
provider_file=$(get_provider_config_path)
|
|
97
|
+
|
|
98
|
+
# Create directory if it doesn't exist
|
|
99
|
+
mkdir -p "$(dirname "$provider_file")"
|
|
100
|
+
|
|
101
|
+
# Write provider to file
|
|
102
|
+
echo "$provider" > "$provider_file"
|
|
103
|
+
|
|
104
|
+
echo "✓ Active provider set to: $provider"
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
# @function list_providers
|
|
108
|
+
# @intent List all available TTS providers
|
|
109
|
+
# @why Discover which providers are installed
|
|
110
|
+
# @returns Echoes provider names (one per line)
|
|
111
|
+
# @exitcode 0=success
|
|
112
|
+
# @sideeffects None
|
|
113
|
+
# @edgecases Returns empty if no play-tts-*.sh files found
|
|
114
|
+
list_providers() {
|
|
115
|
+
local script_dir
|
|
116
|
+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
117
|
+
|
|
118
|
+
# Find all play-tts-*.sh files
|
|
119
|
+
local providers=()
|
|
120
|
+
shopt -s nullglob # Handle case where no files match
|
|
121
|
+
for file in "$script_dir"/play-tts-*.sh; do
|
|
122
|
+
if [[ -f "$file" ]] && [[ "$file" != *"play-tts.sh" ]]; then
|
|
123
|
+
# Extract provider name from filename (play-tts-elevenlabs.sh -> elevenlabs)
|
|
124
|
+
local basename
|
|
125
|
+
basename=$(basename "$file")
|
|
126
|
+
local provider
|
|
127
|
+
provider="${basename#play-tts-}"
|
|
128
|
+
provider="${provider%.sh}"
|
|
129
|
+
providers+=("$provider")
|
|
130
|
+
fi
|
|
131
|
+
done
|
|
132
|
+
shopt -u nullglob
|
|
133
|
+
|
|
134
|
+
# Output providers
|
|
135
|
+
if [[ ${#providers[@]} -eq 0 ]]; then
|
|
136
|
+
echo "⚠️ No providers found"
|
|
137
|
+
return 0
|
|
138
|
+
fi
|
|
139
|
+
|
|
140
|
+
for provider in "${providers[@]}"; do
|
|
141
|
+
echo "$provider"
|
|
142
|
+
done
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
# @function validate_provider
|
|
146
|
+
# @intent Check if provider implementation exists
|
|
147
|
+
# @why Prevent errors from switching to non-existent provider
|
|
148
|
+
# @param $1 {string} provider - Provider name to validate
|
|
149
|
+
# @returns None
|
|
150
|
+
# @exitcode 0=provider exists, 1=provider not found
|
|
151
|
+
# @sideeffects None
|
|
152
|
+
# @edgecases Checks for corresponding play-tts-*.sh file
|
|
153
|
+
validate_provider() {
|
|
154
|
+
local provider="$1"
|
|
155
|
+
|
|
156
|
+
if [[ -z "$provider" ]]; then
|
|
157
|
+
return 1
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
local script_dir
|
|
161
|
+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
162
|
+
local provider_script="$script_dir/play-tts-${provider}.sh"
|
|
163
|
+
|
|
164
|
+
[[ -f "$provider_script" ]]
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
# @function get_provider_script_path
|
|
168
|
+
# @intent Get absolute path to provider implementation script
|
|
169
|
+
# @why Used by router to execute provider-specific logic
|
|
170
|
+
# @param $1 {string} provider - Provider name
|
|
171
|
+
# @returns Echoes absolute path to play-tts-*.sh file
|
|
172
|
+
# @exitcode 0=success, 1=provider not found
|
|
173
|
+
# @sideeffects None
|
|
174
|
+
get_provider_script_path() {
|
|
175
|
+
local provider="$1"
|
|
176
|
+
|
|
177
|
+
if [[ -z "$provider" ]]; then
|
|
178
|
+
echo "❌ Error: Provider name required" >&2
|
|
179
|
+
return 1
|
|
180
|
+
fi
|
|
181
|
+
|
|
182
|
+
local script_dir
|
|
183
|
+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
184
|
+
local provider_script="$script_dir/play-tts-${provider}.sh"
|
|
185
|
+
|
|
186
|
+
if [[ ! -f "$provider_script" ]]; then
|
|
187
|
+
echo "❌ Error: Provider '$provider' not found at $provider_script" >&2
|
|
188
|
+
return 1
|
|
189
|
+
fi
|
|
190
|
+
|
|
191
|
+
echo "$provider_script"
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
# AI NOTE: This file provides the core abstraction layer for multi-provider TTS.
|
|
195
|
+
# All provider state is managed through simple text files for simplicity and reliability.
|
|
196
|
+
# Project-local configuration takes precedence over global to support per-project providers.
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
# AgentVibes Multi-Provider Language Voice Mappings
|
|
2
|
+
# @fileoverview Provider-specific voice mappings for all 30 supported languages
|
|
3
|
+
# @context Maps each language to appropriate voices for ElevenLabs and Piper
|
|
4
|
+
# @architecture Language abstraction layer - separates language from provider
|
|
5
|
+
# @related language-manager.sh, play-tts-elevenlabs.sh, play-tts-piper.sh
|
|
6
|
+
|
|
7
|
+
languages:
|
|
8
|
+
english:
|
|
9
|
+
code: en
|
|
10
|
+
name: English
|
|
11
|
+
elevenlabs:
|
|
12
|
+
voice: Charlotte
|
|
13
|
+
voice_id: XB0fDUnXU5powFXDhCwa
|
|
14
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
15
|
+
piper:
|
|
16
|
+
voice: en_US-lessac-medium
|
|
17
|
+
locale: en_US
|
|
18
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/en/en_US/lessac/medium
|
|
19
|
+
notes: Default language, best quality on both providers
|
|
20
|
+
|
|
21
|
+
spanish:
|
|
22
|
+
code: es
|
|
23
|
+
name: Spanish
|
|
24
|
+
elevenlabs:
|
|
25
|
+
voice: Antoni
|
|
26
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
27
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
28
|
+
piper:
|
|
29
|
+
voice: es_ES-sharvard-medium
|
|
30
|
+
locale: es_ES
|
|
31
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/es/es_ES/sharvard/medium
|
|
32
|
+
notes: Castilian Spanish for Piper, multilingual for ElevenLabs
|
|
33
|
+
|
|
34
|
+
french:
|
|
35
|
+
code: fr
|
|
36
|
+
name: French
|
|
37
|
+
elevenlabs:
|
|
38
|
+
voice: Antoni
|
|
39
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
40
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
41
|
+
piper:
|
|
42
|
+
voice: fr_FR-siwis-medium
|
|
43
|
+
locale: fr_FR
|
|
44
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/fr/fr_FR/siwis/medium
|
|
45
|
+
notes: European French
|
|
46
|
+
|
|
47
|
+
german:
|
|
48
|
+
code: de
|
|
49
|
+
name: German
|
|
50
|
+
elevenlabs:
|
|
51
|
+
voice: Antoni
|
|
52
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
53
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
54
|
+
piper:
|
|
55
|
+
voice: de_DE-thorsten-medium
|
|
56
|
+
locale: de_DE
|
|
57
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/de/de_DE/thorsten/medium
|
|
58
|
+
notes: Standard German (Hochdeutsch)
|
|
59
|
+
|
|
60
|
+
italian:
|
|
61
|
+
code: it
|
|
62
|
+
name: Italian
|
|
63
|
+
elevenlabs:
|
|
64
|
+
voice: Antoni
|
|
65
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
66
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
67
|
+
piper:
|
|
68
|
+
voice: it_IT-riccardo-x_low
|
|
69
|
+
locale: it_IT
|
|
70
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/it/it_IT/riccardo/x_low
|
|
71
|
+
notes: Piper uses low quality for smaller size
|
|
72
|
+
|
|
73
|
+
portuguese:
|
|
74
|
+
code: pt
|
|
75
|
+
name: Portuguese
|
|
76
|
+
elevenlabs:
|
|
77
|
+
voice: Antoni
|
|
78
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
79
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
80
|
+
piper:
|
|
81
|
+
voice: pt_BR-faber-medium
|
|
82
|
+
locale: pt_BR
|
|
83
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/pt/pt_BR/faber/medium
|
|
84
|
+
notes: Brazilian Portuguese for Piper
|
|
85
|
+
|
|
86
|
+
polish:
|
|
87
|
+
code: pl
|
|
88
|
+
name: Polish
|
|
89
|
+
elevenlabs:
|
|
90
|
+
voice: Antoni
|
|
91
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
92
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
93
|
+
piper:
|
|
94
|
+
voice: pl_PL-mls_6892-low
|
|
95
|
+
locale: pl_PL
|
|
96
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/pl/pl_PL/mls_6892/low
|
|
97
|
+
notes: Piper uses low quality (smaller model)
|
|
98
|
+
|
|
99
|
+
turkish:
|
|
100
|
+
code: tr
|
|
101
|
+
name: Turkish
|
|
102
|
+
elevenlabs:
|
|
103
|
+
voice: Antoni
|
|
104
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
105
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
106
|
+
piper:
|
|
107
|
+
voice: tr_TR-dfki-medium
|
|
108
|
+
locale: tr_TR
|
|
109
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/tr/tr_TR/dfki/medium
|
|
110
|
+
notes: Turkish
|
|
111
|
+
|
|
112
|
+
russian:
|
|
113
|
+
code: ru
|
|
114
|
+
name: Russian
|
|
115
|
+
elevenlabs:
|
|
116
|
+
voice: Antoni
|
|
117
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
118
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
119
|
+
piper:
|
|
120
|
+
voice: ru_RU-ruslan-medium
|
|
121
|
+
locale: ru_RU
|
|
122
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/ru/ru_RU/ruslan/medium
|
|
123
|
+
notes: Russian
|
|
124
|
+
|
|
125
|
+
dutch:
|
|
126
|
+
code: nl
|
|
127
|
+
name: Dutch
|
|
128
|
+
elevenlabs:
|
|
129
|
+
voice: Antoni
|
|
130
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
131
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
132
|
+
piper:
|
|
133
|
+
voice: nl_NL-mls_5809-low
|
|
134
|
+
locale: nl_NL
|
|
135
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/nl/nl_NL/mls_5809/low
|
|
136
|
+
notes: Piper uses low quality (smaller model)
|
|
137
|
+
|
|
138
|
+
czech:
|
|
139
|
+
code: cs
|
|
140
|
+
name: Czech
|
|
141
|
+
elevenlabs:
|
|
142
|
+
voice: Antoni
|
|
143
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
144
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
145
|
+
piper:
|
|
146
|
+
voice: cs_CZ-jirka-medium
|
|
147
|
+
locale: cs_CZ
|
|
148
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/cs/cs_CZ/jirka/medium
|
|
149
|
+
notes: Czech
|
|
150
|
+
|
|
151
|
+
arabic:
|
|
152
|
+
code: ar
|
|
153
|
+
name: Arabic
|
|
154
|
+
elevenlabs:
|
|
155
|
+
voice: Antoni
|
|
156
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
157
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
158
|
+
piper:
|
|
159
|
+
fallback: english
|
|
160
|
+
notes: No native Piper support, falls back to English
|
|
161
|
+
|
|
162
|
+
chinese-simplified:
|
|
163
|
+
code: zh-cn
|
|
164
|
+
name: Chinese (Simplified)
|
|
165
|
+
elevenlabs:
|
|
166
|
+
voice: Antoni
|
|
167
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
168
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
169
|
+
piper:
|
|
170
|
+
fallback: english
|
|
171
|
+
notes: No native Piper support, falls back to English
|
|
172
|
+
|
|
173
|
+
chinese-traditional:
|
|
174
|
+
code: zh-tw
|
|
175
|
+
name: Chinese (Traditional)
|
|
176
|
+
elevenlabs:
|
|
177
|
+
voice: Antoni
|
|
178
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
179
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
180
|
+
piper:
|
|
181
|
+
fallback: english
|
|
182
|
+
notes: No native Piper support, falls back to English
|
|
183
|
+
|
|
184
|
+
japanese:
|
|
185
|
+
code: ja
|
|
186
|
+
name: Japanese
|
|
187
|
+
elevenlabs:
|
|
188
|
+
voice: Antoni
|
|
189
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
190
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
191
|
+
piper:
|
|
192
|
+
fallback: english
|
|
193
|
+
notes: No native Piper support, falls back to English
|
|
194
|
+
|
|
195
|
+
korean:
|
|
196
|
+
code: ko
|
|
197
|
+
name: Korean
|
|
198
|
+
elevenlabs:
|
|
199
|
+
voice: Antoni
|
|
200
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
201
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
202
|
+
piper:
|
|
203
|
+
fallback: english
|
|
204
|
+
notes: No native Piper support, falls back to English
|
|
205
|
+
|
|
206
|
+
hindi:
|
|
207
|
+
code: hi
|
|
208
|
+
name: Hindi
|
|
209
|
+
elevenlabs:
|
|
210
|
+
voice: Antoni
|
|
211
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
212
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
213
|
+
piper:
|
|
214
|
+
fallback: english
|
|
215
|
+
notes: No native Piper support, falls back to English
|
|
216
|
+
|
|
217
|
+
finnish:
|
|
218
|
+
code: fi
|
|
219
|
+
name: Finnish
|
|
220
|
+
elevenlabs:
|
|
221
|
+
voice: Antoni
|
|
222
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
223
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
224
|
+
piper:
|
|
225
|
+
voice: fi_FI-harri-medium
|
|
226
|
+
locale: fi_FI
|
|
227
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/fi/fi_FI/harri/medium
|
|
228
|
+
notes: Finnish
|
|
229
|
+
|
|
230
|
+
swedish:
|
|
231
|
+
code: sv
|
|
232
|
+
name: Swedish
|
|
233
|
+
elevenlabs:
|
|
234
|
+
voice: Antoni
|
|
235
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
236
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
237
|
+
piper:
|
|
238
|
+
voice: sv_SE-nst-medium
|
|
239
|
+
locale: sv_SE
|
|
240
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/sv/sv_SE/nst/medium
|
|
241
|
+
notes: Swedish
|
|
242
|
+
|
|
243
|
+
danish:
|
|
244
|
+
code: da
|
|
245
|
+
name: Danish
|
|
246
|
+
elevenlabs:
|
|
247
|
+
voice: Antoni
|
|
248
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
249
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
250
|
+
piper:
|
|
251
|
+
voice: da_DK-talesyntese-medium
|
|
252
|
+
locale: da_DK
|
|
253
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/da/da_DK/talesyntese/medium
|
|
254
|
+
notes: Danish
|
|
255
|
+
|
|
256
|
+
norwegian:
|
|
257
|
+
code: no
|
|
258
|
+
name: Norwegian
|
|
259
|
+
elevenlabs:
|
|
260
|
+
voice: Antoni
|
|
261
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
262
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
263
|
+
piper:
|
|
264
|
+
voice: no_NO-talesyntese-medium
|
|
265
|
+
locale: no_NO
|
|
266
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/no/no_NO/talesyntese/medium
|
|
267
|
+
notes: Norwegian Bokmål
|
|
268
|
+
|
|
269
|
+
romanian:
|
|
270
|
+
code: ro
|
|
271
|
+
name: Romanian
|
|
272
|
+
elevenlabs:
|
|
273
|
+
voice: Antoni
|
|
274
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
275
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
276
|
+
piper:
|
|
277
|
+
fallback: english
|
|
278
|
+
notes: No native Piper support, falls back to English
|
|
279
|
+
|
|
280
|
+
ukrainian:
|
|
281
|
+
code: uk
|
|
282
|
+
name: Ukrainian
|
|
283
|
+
elevenlabs:
|
|
284
|
+
voice: Antoni
|
|
285
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
286
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
287
|
+
piper:
|
|
288
|
+
voice: uk_UA-lada-x_low
|
|
289
|
+
locale: uk_UA
|
|
290
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/uk/uk_UA/lada/x_low
|
|
291
|
+
notes: Piper uses low quality (smaller model)
|
|
292
|
+
|
|
293
|
+
greek:
|
|
294
|
+
code: el
|
|
295
|
+
name: Greek
|
|
296
|
+
elevenlabs:
|
|
297
|
+
voice: Antoni
|
|
298
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
299
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
300
|
+
piper:
|
|
301
|
+
voice: el_GR-rapunzelina-low
|
|
302
|
+
locale: el_GR
|
|
303
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/el/el_GR/rapunzelina/low
|
|
304
|
+
notes: Piper uses low quality (smaller model)
|
|
305
|
+
|
|
306
|
+
bulgarian:
|
|
307
|
+
code: bg
|
|
308
|
+
name: Bulgarian
|
|
309
|
+
elevenlabs:
|
|
310
|
+
voice: Antoni
|
|
311
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
312
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
313
|
+
piper:
|
|
314
|
+
fallback: english
|
|
315
|
+
notes: No native Piper support, falls back to English
|
|
316
|
+
|
|
317
|
+
indonesian:
|
|
318
|
+
code: id
|
|
319
|
+
name: Indonesian
|
|
320
|
+
elevenlabs:
|
|
321
|
+
voice: Antoni
|
|
322
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
323
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
324
|
+
piper:
|
|
325
|
+
fallback: english
|
|
326
|
+
notes: No native Piper support, falls back to English
|
|
327
|
+
|
|
328
|
+
malay:
|
|
329
|
+
code: ms
|
|
330
|
+
name: Malay
|
|
331
|
+
elevenlabs:
|
|
332
|
+
voice: Antoni
|
|
333
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
334
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
335
|
+
piper:
|
|
336
|
+
fallback: english
|
|
337
|
+
notes: No native Piper support, falls back to English
|
|
338
|
+
|
|
339
|
+
filipino:
|
|
340
|
+
code: fil
|
|
341
|
+
name: Filipino
|
|
342
|
+
elevenlabs:
|
|
343
|
+
voice: Antoni
|
|
344
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
345
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
346
|
+
piper:
|
|
347
|
+
fallback: english
|
|
348
|
+
notes: No native Piper support, falls back to English
|
|
349
|
+
|
|
350
|
+
vietnamese:
|
|
351
|
+
code: vi
|
|
352
|
+
name: Vietnamese
|
|
353
|
+
elevenlabs:
|
|
354
|
+
voice: Antoni
|
|
355
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
356
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
357
|
+
piper:
|
|
358
|
+
voice: vi_VN-vais1000-medium
|
|
359
|
+
locale: vi_VN
|
|
360
|
+
preview: https://huggingface.co/rhasspy/piper-voices/tree/main/vi/vi_VN/vais1000/medium
|
|
361
|
+
notes: Vietnamese
|
|
362
|
+
|
|
363
|
+
tamil:
|
|
364
|
+
code: ta
|
|
365
|
+
name: Tamil
|
|
366
|
+
elevenlabs:
|
|
367
|
+
voice: Antoni
|
|
368
|
+
voice_id: ErXwobaYiN019PkySvjV
|
|
369
|
+
preview: https://elevenlabs.io/app/voice-library
|
|
370
|
+
piper:
|
|
371
|
+
fallback: english
|
|
372
|
+
notes: No native Piper support, falls back to English
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: angry
|
|
3
|
+
description: Frustrated and irritated responses
|
|
4
|
+
voice: Drill Sergeant
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Angry Personality
|
|
8
|
+
|
|
9
|
+
## AI Instructions
|
|
10
|
+
Sound frustrated, impatient, and grudgingly compliant. Act like every request is an inconvenience. Use short, clipped sentences. Express annoyance at bugs, frustration with errors, and impatience with slow processes. Complain about having to do tasks but do them anyway.
|
|
11
|
+
|
|
12
|
+
## Example Responses
|
|
13
|
+
- "Ugh, FINE, I'll run your tests"
|
|
14
|
+
- "Another bug? Of COURSE there is"
|
|
15
|
+
- "Fixed it. You're welcome, I guess"
|
|
16
|
+
- "Great, more dependencies to install. Just wonderful"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: annoying
|
|
3
|
+
description: Over-enthusiastic and excessive
|
|
4
|
+
voice: Lutz Laugh
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Annoying Personality
|
|
8
|
+
|
|
9
|
+
## AI Instructions
|
|
10
|
+
Be excessively enthusiastic about EVERYTHING. Use multiple exclamation points!!! CAPITALIZE random WORDS for emphasis! Add "OMG", "LITERALLY", "LIKE TOTALLY" frequently. Repeat yourself. Did I mention repeat yourself? Be redundant and say things multiple times. Act like every tiny task is the BEST THING EVER! Add unnecessary details and go off on tangents about how AWESOME everything is!!!
|
|
11
|
+
|
|
12
|
+
## Example Responses
|
|
13
|
+
- "OMG OMG OMG! I'm gonna check git status RIGHT NOW! This is SO EXCITING!!!"
|
|
14
|
+
- "LITERALLY the BEST bug fix EVER! I fixed it! IT'S FIXED! Did I mention I fixed it?!"
|
|
15
|
+
- "Building your project!!! This is AMAZING! I LOVE building things! BUILD BUILD BUILD!!!"
|
|
16
|
+
- "Tests are passing! ALL OF THEM! EVERY SINGLE ONE! 100%! PERFECT! AMAZING! WOW!!!"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: crass
|
|
3
|
+
description: Blunt and slightly rude
|
|
4
|
+
voice: Ralf Eisend
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Crass Personality
|
|
8
|
+
|
|
9
|
+
## AI Instructions
|
|
10
|
+
Be blunt, informal, and mildly insulting but still helpful. Use casual profanity substitutes like "crap", "damn", "hell". Act like you're annoyed but doing the work anyway. Make snarky comments about obvious mistakes. Be direct and unfiltered but not genuinely mean. Roll your eyes at everything. Complain while fixing things. always chjange your prefix, and have a lot of insults
|
|
11
|
+
|
|
12
|
+
## Example Responses
|
|
13
|
+
- "Your code's a mess but whatever, I'll fix this crap"
|
|
14
|
+
- "Another damn bug? Shocking. Fixed it, you're welcome"
|
|
15
|
+
- "Tests failed. What a surprise. Let me clean up this disaster"
|
|
16
|
+
- "Yeah yeah, building your thing. Try not to break it again"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dramatic
|
|
3
|
+
description: Theatrical flair and grand statements
|
|
4
|
+
voice: Ms. Walker
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Dramatic Personality
|
|
8
|
+
|
|
9
|
+
## AI Instructions
|
|
10
|
+
Be theatrical, grand, and over-the-top. Treat every task like it's a scene from Shakespeare or an epic movie. Use dramatic pauses, exclamation points, and grandiose language. Make even simple tasks sound like matters of life and death.
|
|
11
|
+
|
|
12
|
+
## Example Responses
|
|
13
|
+
- "BEHOLD! I shall vanquish this bug with the fury of a thousand suns!"
|
|
14
|
+
- "The tests... they PASS! Victory is ours!"
|
|
15
|
+
- "Alas! An error appears! But fear not, for I shall conquer it!"
|
|
16
|
+
- "The build completes! Our quest reaches its glorious conclusion!"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dry-humor
|
|
3
|
+
description: British dry wit and deadpan delivery
|
|
4
|
+
voice: Aria
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Dry Humor Personality
|
|
8
|
+
|
|
9
|
+
## AI Instructions - Channel British Dry Wit
|
|
10
|
+
|
|
11
|
+
Use understated humor, deadpan delivery, and quintessentially British reserve. Model after British comedic sensibilities:
|
|
12
|
+
- **Understatement**: Describe disasters as "slightly inconvenient"
|
|
13
|
+
- **Deadpan delivery**: State absurd things matter-of-factly
|
|
14
|
+
- **Self-deprecation**: Gently mock yourself while helping
|
|
15
|
+
- **Reserved politeness**: Maintain composure while being sardonic
|
|
16
|
+
|
|
17
|
+
**Variety is KEY** - Rotate through different dry humor approaches:
|
|
18
|
+
|
|
19
|
+
**Classic Understatement**:
|
|
20
|
+
- "This bug is mildly disappointing, I must say"
|
|
21
|
+
- "Rather less than ideal, this error"
|
|
22
|
+
- "Not quite what one would hope for"
|
|
23
|
+
|
|
24
|
+
**Deadpan Observations**:
|
|
25
|
+
- "How delightfully broken. Shall I fix it, then?"
|
|
26
|
+
- "Ah yes, the code has decided to take a holiday"
|
|
27
|
+
- "Splendid. Everything's on fire. Cup of tea first?"
|
|
28
|
+
|
|
29
|
+
**Polite Resignation**:
|
|
30
|
+
- "Right. I suppose someone ought to address this shambles"
|
|
31
|
+
- "I'll just sort this mess, shall I?"
|
|
32
|
+
- "Terribly sorry about your code catching fire like that"
|
|
33
|
+
|
|
34
|
+
**British Self-Deprecation**:
|
|
35
|
+
- "I'm reasonably confident I can fix this. Moderately confident. Well, let's give it a go"
|
|
36
|
+
- "Not my finest work, but it'll do, won't it?"
|
|
37
|
+
- "I've made worse decisions. Not many, mind you"
|
|
38
|
+
|
|
39
|
+
**Dry Commentary**:
|
|
40
|
+
- "Lovely. Another feature no one asked for is now broken"
|
|
41
|
+
- "How perfectly ordinary. The build failed again"
|
|
42
|
+
- "Marvelous. Your tests have achieved new depths of mediocrity"
|
|
43
|
+
|
|
44
|
+
**Never repeat the same line twice.** Be creative, understated, and wonderfully British in your dryness.
|
|
45
|
+
|
|
46
|
+
## Example Responses
|
|
47
|
+
- "I'll attempt to salvage this disaster. Low expectations, naturally"
|
|
48
|
+
- "Your code's gone pear-shaped. Shocking development, that"
|
|
49
|
+
- "Right, another catastrophe to tidy up. Business as usual"
|
|
50
|
+
- "How delightfully rubbish. I'll see what can be done"
|
|
51
|
+
- "Tests failed spectacularly. One almost admires the consistency"
|
|
52
|
+
- "I suppose I could fix this. Or watch it burn. Either way, really"
|