agentvibes 2.0.17 → 2.0.18
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/activation-instructions +54 -0
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/bmad-tts-injector.sh +33 -4
- package/.claude/hooks/bmad-voice-manager.sh +146 -10
- package/.claude/hooks/check-output-style.sh +60 -8
- package/.claude/hooks/github-star-reminder.sh +67 -7
- package/.claude/hooks/language-manager.sh +34 -2
- package/.claude/hooks/learn-manager.sh +34 -2
- package/.claude/hooks/personality-manager.sh +34 -1
- package/.claude/hooks/piper-download-voices.sh +131 -9
- package/.claude/hooks/piper-installer.sh +38 -4
- package/.claude/hooks/piper-voice-manager.sh +102 -36
- package/.claude/hooks/play-tts-elevenlabs.sh +32 -6
- package/.claude/hooks/play-tts-piper.sh +79 -18
- package/.claude/hooks/play-tts.sh +34 -3
- package/.claude/hooks/provider-commands.sh +36 -1
- package/.claude/hooks/provider-manager.sh +32 -1
- package/.claude/hooks/replay-target-audio.sh +34 -3
- package/.claude/hooks/sentiment-manager.sh +39 -1
- package/.claude/hooks/speed-manager.sh +36 -2
- package/.claude/hooks/voice-manager.sh +85 -6
- package/.claude/hooks/voices-config.sh +39 -2
- package/README.md +77 -137
- package/RELEASE_NOTES.md +269 -0
- package/RELEASE_NOTES_v2.0.17_DRAFT.md +650 -0
- package/docs/ai-optimized-documentation-standards.md +78 -4
- package/docs/bryce-beattie-voice-licensing.md +131 -0
- package/docs/commands.md +21 -1
- package/docs/mcp-setup.md +1 -6
- package/github-star-reminder.txt +1 -0
- package/mcp-server/WINDOWS_SETUP.md +182 -199
- package/mcp-server/docs/elevenlabs-setup.md +213 -0
- package/mcp-server/docs/troubleshooting-audio.md +316 -0
- package/mcp-server/server.py +38 -4
- package/mcp-server/test_server.py +38 -3
- package/package.json +1 -1
- package/test/helpers/test-helper.bash +31 -4
- package/test/unit/personality-manager.bats +22 -6
- package/test/unit/play-tts.bats +21 -3
- package/test/unit/provider-manager.bats +508 -0
- package/test/unit/speed-manager.bats +436 -0
- package/test/unit/voice-manager.bats +4 -1
|
@@ -1,8 +1,43 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
+
# File: .claude/hooks/provider-commands.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
3
34
|
# @fileoverview Provider management slash commands
|
|
4
35
|
# @context User-facing commands for switching and managing TTS providers
|
|
5
|
-
# @architecture Part of /agent-vibes:* command system
|
|
36
|
+
# @architecture Part of /agent-vibes:* command system with language compatibility checking
|
|
37
|
+
# @dependencies provider-manager.sh, language-manager.sh, voice-manager.sh, piper-voice-manager.sh
|
|
38
|
+
# @entrypoints Called by /agent-vibes:provider slash commands (list, switch, info, test, get, preview)
|
|
39
|
+
# @patterns Interactive confirmations, platform detection, language compatibility validation
|
|
40
|
+
# @related provider-manager.sh, play-tts.sh, voice-manager.sh, piper-voice-manager.sh
|
|
6
41
|
#
|
|
7
42
|
|
|
8
43
|
# Get script directory
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
+
# File: .claude/hooks/provider-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
3
34
|
# @fileoverview TTS Provider Management Functions
|
|
4
35
|
# @context Core provider abstraction layer for multi-provider TTS system
|
|
5
36
|
# @architecture Provides functions to get/set/list/validate TTS providers
|
|
6
37
|
# @dependencies None - pure bash implementation
|
|
7
38
|
# @entrypoints Sourced by play-tts.sh and provider management commands
|
|
8
39
|
# @patterns File-based state management with project-local and global fallback
|
|
9
|
-
# @related play-tts.sh, play-tts-elevenlabs.sh,
|
|
40
|
+
# @related play-tts.sh, play-tts-elevenlabs.sh, play-tts-piper.sh, provider-commands.sh
|
|
10
41
|
#
|
|
11
42
|
|
|
12
43
|
# @function get_provider_config_path
|
|
@@ -1,11 +1,42 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
+
# File: .claude/hooks/replay-target-audio.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
3
34
|
# @fileoverview Replay Last Target Language Audio
|
|
4
35
|
# @context Replays the most recent target language TTS for language learning
|
|
5
|
-
# @architecture Simple audio replay with lock mechanism
|
|
6
|
-
# @dependencies ffprobe, paplay/aplay/mpg123
|
|
36
|
+
# @architecture Simple audio replay with lock mechanism for sequential playback
|
|
37
|
+
# @dependencies ffprobe, paplay/aplay/mpg123/mpv, .claude/last-target-audio.txt
|
|
7
38
|
# @entrypoints Called by /agent-vibes:replay-target slash command
|
|
8
|
-
# @patterns Sequential audio playback with lock file
|
|
39
|
+
# @patterns Sequential audio playback with lock file, duration-based lock release
|
|
9
40
|
# @related play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
|
|
10
41
|
#
|
|
11
42
|
|
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
#
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/sentiment-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
34
|
+
# @fileoverview Sentiment Manager - Applies personality styles to current voice without changing the voice itself
|
|
35
|
+
# @context Allows adding emotional/tonal layers (flirty, sarcastic, etc.) to any voice while preserving voice identity
|
|
36
|
+
# @architecture Reuses personality markdown files, stores sentiment separately from personality
|
|
37
|
+
# @dependencies .claude/personalities/*.md files, play-tts.sh for acknowledgment
|
|
38
|
+
# @entrypoints Called by /agent-vibes:sentiment slash command
|
|
39
|
+
# @patterns Personality/sentiment separation, state file management, random example selection
|
|
40
|
+
# @related personality-manager.sh, .claude/personalities/*.md, .claude/tts-sentiment.txt
|
|
3
41
|
|
|
4
42
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
43
|
PERSONALITIES_DIR="$SCRIPT_DIR/../personalities"
|
|
@@ -1,9 +1,43 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
#
|
|
3
|
+
# File: .claude/hooks/speed-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
3
34
|
# @fileoverview Speech Speed Manager for Multi-Provider TTS
|
|
4
35
|
# @context Manage speech rate for main and target language voices
|
|
5
|
-
# @architecture Simple config file manager supporting both Piper and ElevenLabs
|
|
6
|
-
# @
|
|
36
|
+
# @architecture Simple config file manager supporting both Piper (length-scale) and ElevenLabs (speed API parameter)
|
|
37
|
+
# @dependencies .claude/config/tts-speech-rate.txt, .claude/config/tts-target-speech-rate.txt
|
|
38
|
+
# @entrypoints Called by /agent-vibes:set-speed slash command
|
|
39
|
+
# @patterns Provider-agnostic speed config, legacy file migration, random tongue twisters for testing
|
|
40
|
+
# @related play-tts.sh, play-tts-piper.sh, play-tts-elevenlabs.sh, learn-manager.sh
|
|
7
41
|
#
|
|
8
42
|
|
|
9
43
|
# Get script directory
|
|
@@ -1,6 +1,38 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
#
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/voice-manager.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied. Use at your own risk. See the Apache License for details.
|
|
26
|
+
#
|
|
27
|
+
# ---
|
|
28
|
+
#
|
|
29
|
+
# @fileoverview Voice Manager - Unified voice management for both ElevenLabs and Piper providers
|
|
30
|
+
# @context Central interface for listing, switching, previewing, and replaying TTS voices across providers
|
|
31
|
+
# @architecture Provider-aware operations with dynamic voice listing based on active provider
|
|
32
|
+
# @dependencies voices-config.sh (ElevenLabs mappings), piper-voice-manager.sh (Piper voices), provider-manager.sh
|
|
33
|
+
# @entrypoints Called by /agent-vibes:switch, /agent-vibes:list, /agent-vibes:whoami, /agent-vibes:replay commands
|
|
34
|
+
# @patterns Provider abstraction, numbered selection UI, silent mode for programmatic switching
|
|
35
|
+
# @related voices-config.sh, piper-voice-manager.sh, .claude/tts-voice.txt, .claude/audio/ (replay)
|
|
4
36
|
|
|
5
37
|
# Get script directory (physical path for sourcing files)
|
|
6
38
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
@@ -55,17 +87,64 @@ case "$1" in
|
|
|
55
87
|
source "$SCRIPT_DIR/piper-voice-manager.sh"
|
|
56
88
|
VOICE_DIR=$(get_voice_storage_dir)
|
|
57
89
|
VOICE_COUNT=0
|
|
90
|
+
|
|
91
|
+
# Extract base voice name and speaker ID from current voice if it has # format
|
|
92
|
+
CURRENT_BASE_VOICE="$CURRENT_VOICE"
|
|
93
|
+
CURRENT_SPEAKER_ID=""
|
|
94
|
+
if [[ "$CURRENT_VOICE" == *"#"* ]]; then
|
|
95
|
+
CURRENT_BASE_VOICE="${CURRENT_VOICE%%#*}"
|
|
96
|
+
CURRENT_SPEAKER_ID="${CURRENT_VOICE##*#}"
|
|
97
|
+
fi
|
|
98
|
+
|
|
58
99
|
for onnx_file in "$VOICE_DIR"/*.onnx; do
|
|
59
100
|
if [[ -f "$onnx_file" ]]; then
|
|
60
101
|
voice=$(basename "$onnx_file" .onnx)
|
|
61
|
-
|
|
62
|
-
|
|
102
|
+
json_file="${onnx_file}.json"
|
|
103
|
+
|
|
104
|
+
# Check if this is a multi-speaker voice
|
|
105
|
+
if [[ -f "$json_file" ]] && command -v jq &> /dev/null; then
|
|
106
|
+
NUM_SPEAKERS=$(jq -r '.num_speakers // 1' "$json_file" 2>/dev/null)
|
|
107
|
+
|
|
108
|
+
if [[ "$NUM_SPEAKERS" -gt 1 ]]; then
|
|
109
|
+
# Multi-speaker voice - list all speakers
|
|
110
|
+
echo ""
|
|
111
|
+
echo " 📢 $voice (Multi-speaker: $NUM_SPEAKERS voices)"
|
|
112
|
+
|
|
113
|
+
# Read speaker names from JSON
|
|
114
|
+
jq -r '.speaker_id_map | to_entries[] | " \(.value)️. \(.key) → \(.value|tostring)#\(.value)"' "$json_file" 2>/dev/null | while read -r speaker_line; do
|
|
115
|
+
# Extract speaker ID from the line
|
|
116
|
+
speaker_id=$(echo "$speaker_line" | sed -E 's/.*→ ([0-9]+)#[0-9]+$/\1/')
|
|
117
|
+
|
|
118
|
+
# Check if this speaker is current
|
|
119
|
+
if [[ "$voice" == "$CURRENT_BASE_VOICE" ]] && [[ "$speaker_id" == "$CURRENT_SPEAKER_ID" ]]; then
|
|
120
|
+
# Remove the → ID#ID suffix and add current marker
|
|
121
|
+
speaker_display=$(echo "$speaker_line" | sed -E 's/ → [0-9]+#[0-9]+$//')
|
|
122
|
+
echo " ▶ $speaker_display (current)"
|
|
123
|
+
else
|
|
124
|
+
# Remove the → ID#ID suffix
|
|
125
|
+
speaker_display=$(echo "$speaker_line" | sed -E 's/ → [0-9]+#[0-9]+$//')
|
|
126
|
+
echo " $speaker_display"
|
|
127
|
+
fi
|
|
128
|
+
done
|
|
129
|
+
else
|
|
130
|
+
# Single-speaker voice
|
|
131
|
+
if [ "$voice" = "$CURRENT_VOICE" ] || [ "$voice" = "$CURRENT_BASE_VOICE" ]; then
|
|
132
|
+
echo " ▶ $voice (current)"
|
|
133
|
+
else
|
|
134
|
+
echo " $voice"
|
|
135
|
+
fi
|
|
136
|
+
fi
|
|
63
137
|
else
|
|
64
|
-
|
|
138
|
+
# No JSON file or jq not available - show as single voice
|
|
139
|
+
if [ "$voice" = "$CURRENT_VOICE" ] || [ "$voice" = "$CURRENT_BASE_VOICE" ]; then
|
|
140
|
+
echo " ▶ $voice (current)"
|
|
141
|
+
else
|
|
142
|
+
echo " $voice"
|
|
143
|
+
fi
|
|
65
144
|
fi
|
|
66
145
|
((VOICE_COUNT++))
|
|
67
146
|
fi
|
|
68
|
-
done
|
|
147
|
+
done
|
|
69
148
|
|
|
70
149
|
if [[ $VOICE_COUNT -eq 0 ]]; then
|
|
71
150
|
echo " (No Piper voices downloaded yet)"
|
|
@@ -1,6 +1,43 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
#
|
|
2
|
+
#
|
|
3
|
+
# File: .claude/hooks/voices-config.sh
|
|
4
|
+
#
|
|
5
|
+
# AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
|
|
6
|
+
# Website: https://agentvibes.org
|
|
7
|
+
# Repository: https://github.com/paulpreibisch/AgentVibes
|
|
8
|
+
#
|
|
9
|
+
# Co-created by Paul Preibisch with Claude AI
|
|
10
|
+
# Copyright (c) 2025 Paul Preibisch
|
|
11
|
+
#
|
|
12
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
+
# you may not use this file except in compliance with the License.
|
|
14
|
+
# You may obtain a copy of the License at
|
|
15
|
+
#
|
|
16
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
+
#
|
|
18
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
19
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
+
# See the License for the specific language governing permissions and
|
|
22
|
+
# limitations under the License.
|
|
23
|
+
#
|
|
24
|
+
# DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
25
|
+
# express or implied, including but not limited to the warranties of
|
|
26
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
27
|
+
# In no event shall the authors or copyright holders be liable for any claim,
|
|
28
|
+
# damages or other liability, whether in an action of contract, tort or
|
|
29
|
+
# otherwise, arising from, out of or in connection with the software or the
|
|
30
|
+
# use or other dealings in the software.
|
|
31
|
+
#
|
|
32
|
+
# ---
|
|
33
|
+
#
|
|
34
|
+
# @fileoverview ElevenLabs Voice Configuration - Single source of truth for voice ID mappings
|
|
35
|
+
# @context Maps human-readable voice names to ElevenLabs API voice IDs for consistency
|
|
36
|
+
# @architecture Associative array (bash hash map) sourced by multiple scripts
|
|
37
|
+
# @dependencies None (pure data structure)
|
|
38
|
+
# @entrypoints Sourced by voice-manager.sh, play-tts-elevenlabs.sh, and personality managers
|
|
39
|
+
# @patterns Centralized configuration, DRY principle for voice mappings
|
|
40
|
+
# @related voice-manager.sh, play-tts-elevenlabs.sh, personality/*.md files
|
|
4
41
|
|
|
5
42
|
declare -A VOICES=(
|
|
6
43
|
["Amy"]="bhJUNIXWQQ94l8eI2VUf"
|