agentvibes 2.0.20 → 2.0.22

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.
Files changed (233) hide show
  1. package/.claude/agents/health-coach.md +154 -0
  2. package/.claude/agents/motivator.md +171 -0
  3. package/.claude/agents/negotiator.md +97 -0
  4. package/.claude/commands/agent-vibes/agent-health-coach.md +15 -0
  5. package/.claude/commands/agent-vibes/agent-motivator.md +15 -0
  6. package/.claude/commands/agent-vibes/agent-negotiator.md +15 -0
  7. package/.claude/commands/agent-vibes/agent.md +79 -0
  8. package/.claude/commands/agent-vibes/commands.json +4 -0
  9. package/.claude/commands/agent-vibes/set-favorite-voice.md +84 -0
  10. package/.claude/github-star-reminder.txt +1 -1
  11. package/.claude/hooks/download-extra-voices.sh +244 -0
  12. package/.claude/hooks/personality-manager.sh +81 -0
  13. package/.claude/hooks/piper-download-voices.sh +3 -93
  14. package/.claude/hooks/piper-multispeaker-registry.sh +165 -0
  15. package/.claude/hooks/play-tts-elevenlabs.sh +5 -3
  16. package/.claude/hooks/play-tts-piper.sh +27 -44
  17. package/.claude/hooks/provider-manager.sh +24 -5
  18. package/.claude/hooks/speed-manager.sh +10 -12
  19. package/.claude/hooks/voice-manager.sh +94 -56
  20. package/README.md +0 -3
  21. package/RELEASE_NOTES.md +40 -247
  22. package/docs/agents.md +485 -0
  23. package/docs/commands.md +1 -21
  24. package/docs/extra-voices-implementation-summary.md +235 -0
  25. package/docs/voice-registration-fix.md +254 -0
  26. package/fix-vscode-colors.sh +88 -0
  27. package/fixcolors +88 -0
  28. package/generate-all-agent-voices.sh +174 -0
  29. package/generate-missing-elevenlabs-complete.sh +236 -0
  30. package/generate-missing-elevenlabs.sh +110 -0
  31. package/generate-new-voices.sh +108 -0
  32. package/generate-piper-agent-intros.sh +85 -0
  33. package/generate-provider-and-agent-intros.sh +136 -0
  34. package/logo/fav_icon_128x128.png +0 -0
  35. package/logo/fav_icon_128x128.png:Zone.Identifier +4 -0
  36. package/logo/logo1.webp +0 -0
  37. package/logo/logo1.webp:Zone.Identifier +4 -0
  38. package/logo/social.png +0 -0
  39. package/logo/social.png:Zone.Identifier +4 -0
  40. package/mcp-server/agentvibes.db +0 -0
  41. package/mcp-server/server.py +47 -14
  42. package/package.json +3 -3
  43. package/regenerate-agent-voices.sh +79 -0
  44. package/test/unit/provider-manager.bats +8 -5
  45. package/test/unit/speed-manager.bats +4 -4
  46. package/agentvibes.org/.claude/audio/tts-padded-1760744118.mp3 +0 -0
  47. package/agentvibes.org/.claude/audio/tts-padded-1760748535.mp3 +0 -0
  48. package/agentvibes.org/.claude/audio/tts-padded-1760748676.mp3 +0 -0
  49. package/agentvibes.org/.claude/audio/tts-padded-1760750748.mp3 +0 -0
  50. package/agentvibes.org/.claude/audio/tts-padded-1760750947.mp3 +0 -0
  51. package/agentvibes.org/.claude/audio/tts-padded-1760752718.mp3 +0 -0
  52. package/agentvibes.org/.claude/audio/tts-padded-1760752907.mp3 +0 -0
  53. package/agentvibes.org/.claude/audio/tts-padded-1760753017.mp3 +0 -0
  54. package/agentvibes.org/.claude/audio/tts-padded-1760753045.mp3 +0 -0
  55. package/agentvibes.org/.claude/audio/tts-padded-1760753241.mp3 +0 -0
  56. package/agentvibes.org/.claude/audio/tts-padded-1760753315.mp3 +0 -0
  57. package/agentvibes.org/.claude/audio/tts-padded-1760753382.mp3 +0 -0
  58. package/agentvibes.org/.claude/audio/tts-padded-1760753408.mp3 +0 -0
  59. package/agentvibes.org/.claude/audio/tts-padded-1760753426.mp3 +0 -0
  60. package/agentvibes.org/.claude/audio/tts-padded-1760753446.mp3 +0 -0
  61. package/agentvibes.org/.claude/audio/tts-padded-1760753541.mp3 +0 -0
  62. package/agentvibes.org/.claude/audio/tts-padded-1760753553.mp3 +0 -0
  63. package/agentvibes.org/.claude/audio/tts-padded-1760753577.mp3 +0 -0
  64. package/agentvibes.org/.claude/commands/agent-vibes/add.md +0 -21
  65. package/agentvibes.org/.claude/commands/agent-vibes/agent-vibes.md +0 -68
  66. package/agentvibes.org/.claude/commands/agent-vibes/bmad.md +0 -196
  67. package/agentvibes.org/.claude/commands/agent-vibes/commands.json +0 -77
  68. package/agentvibes.org/.claude/commands/agent-vibes/get.md +0 -9
  69. package/agentvibes.org/.claude/commands/agent-vibes/language.md +0 -23
  70. package/agentvibes.org/.claude/commands/agent-vibes/learn.md +0 -67
  71. package/agentvibes.org/.claude/commands/agent-vibes/list.md +0 -13
  72. package/agentvibes.org/.claude/commands/agent-vibes/personality.md +0 -79
  73. package/agentvibes.org/.claude/commands/agent-vibes/preview.md +0 -17
  74. package/agentvibes.org/.claude/commands/agent-vibes/provider.md +0 -54
  75. package/agentvibes.org/.claude/commands/agent-vibes/replay-target.md +0 -14
  76. package/agentvibes.org/.claude/commands/agent-vibes/replay.md +0 -19
  77. package/agentvibes.org/.claude/commands/agent-vibes/sample.md +0 -12
  78. package/agentvibes.org/.claude/commands/agent-vibes/sentiment.md +0 -52
  79. package/agentvibes.org/.claude/commands/agent-vibes/set-language.md +0 -47
  80. package/agentvibes.org/.claude/commands/agent-vibes/set-pretext.md +0 -65
  81. package/agentvibes.org/.claude/commands/agent-vibes/set-speed.md +0 -41
  82. package/agentvibes.org/.claude/commands/agent-vibes/switch.md +0 -53
  83. package/agentvibes.org/.claude/commands/agent-vibes/target-voice.md +0 -26
  84. package/agentvibes.org/.claude/commands/agent-vibes/target.md +0 -30
  85. package/agentvibes.org/.claude/commands/agent-vibes/update.md +0 -20
  86. package/agentvibes.org/.claude/commands/agent-vibes/version.md +0 -10
  87. package/agentvibes.org/.claude/commands/agent-vibes/whoami.md +0 -7
  88. package/agentvibes.org/.claude/hooks/bmad-tts-injector.sh +0 -386
  89. package/agentvibes.org/.claude/hooks/bmad-voice-manager.sh +0 -375
  90. package/agentvibes.org/.claude/hooks/check-output-style.sh +0 -60
  91. package/agentvibes.org/.claude/hooks/github-star-reminder.sh +0 -94
  92. package/agentvibes.org/.claude/hooks/language-manager.sh +0 -360
  93. package/agentvibes.org/.claude/hooks/learn-manager.sh +0 -443
  94. package/agentvibes.org/.claude/hooks/personality-manager.sh +0 -324
  95. package/agentvibes.org/.claude/hooks/piper-download-voices.sh +0 -133
  96. package/agentvibes.org/.claude/hooks/piper-installer.sh +0 -144
  97. package/agentvibes.org/.claude/hooks/piper-voice-manager.sh +0 -227
  98. package/agentvibes.org/.claude/hooks/play-tts-elevenlabs.sh +0 -376
  99. package/agentvibes.org/.claude/hooks/play-tts-piper.sh +0 -281
  100. package/agentvibes.org/.claude/hooks/play-tts.sh +0 -69
  101. package/agentvibes.org/.claude/hooks/provider-commands.sh +0 -505
  102. package/agentvibes.org/.claude/hooks/provider-manager.sh +0 -248
  103. package/agentvibes.org/.claude/hooks/replay-target-audio.sh +0 -64
  104. package/agentvibes.org/.claude/hooks/sentiment-manager.sh +0 -163
  105. package/agentvibes.org/.claude/hooks/speed-manager.sh +0 -259
  106. package/agentvibes.org/.claude/hooks/voice-manager.sh +0 -477
  107. package/agentvibes.org/.claude/hooks/voices-config.sh +0 -33
  108. package/agentvibes.org/.claude/journal/2025-10-07.html +0 -373
  109. package/agentvibes.org/.claude/journal/index.html +0 -91
  110. package/agentvibes.org/.claude/output-styles/agent-vibes.md +0 -203
  111. package/agentvibes.org/.claude/personalities/angry.md +0 -17
  112. package/agentvibes.org/.claude/personalities/annoying.md +0 -17
  113. package/agentvibes.org/.claude/personalities/crass.md +0 -17
  114. package/agentvibes.org/.claude/personalities/dramatic.md +0 -17
  115. package/agentvibes.org/.claude/personalities/dry-humor.md +0 -53
  116. package/agentvibes.org/.claude/personalities/flirty.md +0 -23
  117. package/agentvibes.org/.claude/personalities/funny.md +0 -17
  118. package/agentvibes.org/.claude/personalities/grandpa.md +0 -35
  119. package/agentvibes.org/.claude/personalities/millennial.md +0 -17
  120. package/agentvibes.org/.claude/personalities/moody.md +0 -17
  121. package/agentvibes.org/.claude/personalities/normal.md +0 -19
  122. package/agentvibes.org/.claude/personalities/pirate.md +0 -17
  123. package/agentvibes.org/.claude/personalities/poetic.md +0 -17
  124. package/agentvibes.org/.claude/personalities/professional.md +0 -17
  125. package/agentvibes.org/.claude/personalities/robot.md +0 -17
  126. package/agentvibes.org/.claude/personalities/sarcastic.md +0 -41
  127. package/agentvibes.org/.claude/personalities/sassy.md +0 -17
  128. package/agentvibes.org/.claude/personalities/surfer-dude.md +0 -17
  129. package/agentvibes.org/.claude/personalities/zen.md +0 -17
  130. package/agentvibes.org/.claude/piper-voices-dir.txt +0 -1
  131. package/agentvibes.org/.claude/plugins/bmad-voices.md +0 -42
  132. package/agentvibes.org/.claude/tts-provider.txt +0 -1
  133. package/agentvibes.org/.mcp-minimal.json +0 -60
  134. package/agentvibes.org/CHANGELOG.md +0 -56
  135. package/agentvibes.org/README.md +0 -93
  136. package/agentvibes.org/app/(auth)/layout.tsx +0 -15
  137. package/agentvibes.org/app/(auth)/reset-password/page.tsx +0 -45
  138. package/agentvibes.org/app/(auth)/signin/page.tsx +0 -82
  139. package/agentvibes.org/app/(auth)/signup/page.tsx +0 -104
  140. package/agentvibes.org/app/(default)/blog/[slug]/page.tsx +0 -128
  141. package/agentvibes.org/app/(default)/blog/page.tsx +0 -95
  142. package/agentvibes.org/app/(default)/layout.tsx +0 -31
  143. package/agentvibes.org/app/(default)/page.tsx +0 -20
  144. package/agentvibes.org/app/api/hello/route.ts +0 -3
  145. package/agentvibes.org/app/css/additional-styles/theme.css +0 -82
  146. package/agentvibes.org/app/css/additional-styles/utility-patterns.css +0 -55
  147. package/agentvibes.org/app/css/style.css +0 -100
  148. package/agentvibes.org/app/layout.tsx +0 -63
  149. package/agentvibes.org/components/code-block.tsx +0 -27
  150. package/agentvibes.org/components/cta.tsx +0 -58
  151. package/agentvibes.org/components/features.tsx +0 -256
  152. package/agentvibes.org/components/hero-home.tsx +0 -133
  153. package/agentvibes.org/components/mdx-components.tsx +0 -128
  154. package/agentvibes.org/components/modal-video.tsx +0 -137
  155. package/agentvibes.org/components/page-illustration.tsx +0 -55
  156. package/agentvibes.org/components/spotlight.tsx +0 -77
  157. package/agentvibes.org/components/testimonials.tsx +0 -282
  158. package/agentvibes.org/components/ui/footer.tsx +0 -82
  159. package/agentvibes.org/components/ui/header.tsx +0 -68
  160. package/agentvibes.org/components/ui/logo.tsx +0 -10
  161. package/agentvibes.org/components/workflows.tsx +0 -176
  162. package/agentvibes.org/content/blog/discovering-new-piper-voices.mdx +0 -253
  163. package/agentvibes.org/content/blog/getting-started-agentvibes.mdx +0 -228
  164. package/agentvibes.org/content/blog/introducing-agentvibes-v2.mdx +0 -250
  165. package/agentvibes.org/content/blog/language-learning-with-agentvibes.mdx +0 -142
  166. package/agentvibes.org/content/blog/voice-personalities-guide.mdx +0 -119
  167. package/agentvibes.org/lib/blog.ts +0 -73
  168. package/agentvibes.org/next.config.js +0 -6
  169. package/agentvibes.org/package-lock.json +0 -4285
  170. package/agentvibes.org/package.json +0 -40
  171. package/agentvibes.org/pnpm-lock.yaml +0 -1141
  172. package/agentvibes.org/postcss.config.js +0 -5
  173. package/agentvibes.org/public/audio/02-sarcastic.mp3 +0 -0
  174. package/agentvibes.org/public/audio/03-angry.mp3 +0 -0
  175. package/agentvibes.org/public/audio/04-grandpa.mp3 +0 -0
  176. package/agentvibes.org/public/audio/05-sarcastic-example2.mp3 +0 -0
  177. package/agentvibes.org/public/audio/french-rachel.mp3 +0 -0
  178. package/agentvibes.org/public/audio/piper-voices/speaker_0_Cori_Samuel.wav +0 -0
  179. package/agentvibes.org/public/audio/piper-voices/speaker_10_Steve_C.wav +0 -0
  180. package/agentvibes.org/public/audio/piper-voices/speaker_11_Owlivia.wav +0 -0
  181. package/agentvibes.org/public/audio/piper-voices/speaker_12_Paul_Hampton.wav +0 -0
  182. package/agentvibes.org/public/audio/piper-voices/speaker_13_Jennifer_Dorr.wav +0 -0
  183. package/agentvibes.org/public/audio/piper-voices/speaker_14_Emily_Cripps.wav +0 -0
  184. package/agentvibes.org/public/audio/piper-voices/speaker_15_Martin_Clifton.wav +0 -0
  185. package/agentvibes.org/public/audio/piper-voices/speaker_1_Kara_Shallenberg.wav +0 -0
  186. package/agentvibes.org/public/audio/piper-voices/speaker_2_Kristin_Hughes.wav +0 -0
  187. package/agentvibes.org/public/audio/piper-voices/speaker_3_Maria_Kasper.wav +0 -0
  188. package/agentvibes.org/public/audio/piper-voices/speaker_4_Mike_Pelton.wav +0 -0
  189. package/agentvibes.org/public/audio/piper-voices/speaker_5_Mark_Nelson.wav +0 -0
  190. package/agentvibes.org/public/audio/piper-voices/speaker_6_Michael_Scherer.wav +0 -0
  191. package/agentvibes.org/public/audio/piper-voices/speaker_7_James_K_White.wav +0 -0
  192. package/agentvibes.org/public/audio/piper-voices/speaker_8_Rose_Ibex.wav +0 -0
  193. package/agentvibes.org/public/audio/piper-voices/speaker_9_progressingamerica.wav +0 -0
  194. package/agentvibes.org/public/audio/spanish-antoni.mp3 +0 -0
  195. package/agentvibes.org/public/favicon.ico +0 -0
  196. package/agentvibes.org/public/fonts/nacelle-italic.woff2 +0 -0
  197. package/agentvibes.org/public/fonts/nacelle-regular.woff2 +0 -0
  198. package/agentvibes.org/public/fonts/nacelle-semibold.woff2 +0 -0
  199. package/agentvibes.org/public/fonts/nacelle-semibolditalic.woff2 +0 -0
  200. package/agentvibes.org/public/images/blurred-shape-gray.svg +0 -1
  201. package/agentvibes.org/public/images/blurred-shape.svg +0 -1
  202. package/agentvibes.org/public/images/client-logo-01.svg +0 -1
  203. package/agentvibes.org/public/images/client-logo-02.svg +0 -1
  204. package/agentvibes.org/public/images/client-logo-03.svg +0 -1
  205. package/agentvibes.org/public/images/client-logo-04.svg +0 -1
  206. package/agentvibes.org/public/images/client-logo-05.svg +0 -1
  207. package/agentvibes.org/public/images/client-logo-06.svg +0 -1
  208. package/agentvibes.org/public/images/client-logo-07.svg +0 -1
  209. package/agentvibes.org/public/images/client-logo-08.svg +0 -1
  210. package/agentvibes.org/public/images/client-logo-09.svg +0 -1
  211. package/agentvibes.org/public/images/features.png +0 -0
  212. package/agentvibes.org/public/images/footer-illustration.svg +0 -1
  213. package/agentvibes.org/public/images/hero-image-01.jpg +0 -0
  214. package/agentvibes.org/public/images/logo.svg +0 -1
  215. package/agentvibes.org/public/images/page-illustration.svg +0 -1
  216. package/agentvibes.org/public/images/secondary-illustration.svg +0 -1
  217. package/agentvibes.org/public/images/testimonial-01.jpg +0 -0
  218. package/agentvibes.org/public/images/testimonial-02.jpg +0 -0
  219. package/agentvibes.org/public/images/testimonial-03.jpg +0 -0
  220. package/agentvibes.org/public/images/testimonial-04.jpg +0 -0
  221. package/agentvibes.org/public/images/testimonial-05.jpg +0 -0
  222. package/agentvibes.org/public/images/testimonial-06.jpg +0 -0
  223. package/agentvibes.org/public/images/testimonial-07.jpg +0 -0
  224. package/agentvibes.org/public/images/testimonial-08.jpg +0 -0
  225. package/agentvibes.org/public/images/testimonial-09.jpg +0 -0
  226. package/agentvibes.org/public/images/workflow-01.png +0 -0
  227. package/agentvibes.org/public/images/workflow-02.png +0 -0
  228. package/agentvibes.org/public/images/workflow-03.png +0 -0
  229. package/agentvibes.org/public/videos/video.mp4 +0 -0
  230. package/agentvibes.org/tsconfig.json +0 -28
  231. package/agentvibes.org/utils/useMasonry.tsx +0 -67
  232. package/agentvibes.org/utils/useMousePosition.tsx +0 -27
  233. package/docs/bryce-beattie-voice-licensing.md +0 -131
@@ -1,259 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # @fileoverview Speech Speed Manager for Multi-Provider TTS
4
- # @context Manage speech rate for main and target language voices
5
- # @architecture Simple config file manager supporting both Piper and ElevenLabs
6
- # @providers Piper (length-scale), ElevenLabs (speed API parameter)
7
- #
8
-
9
- # Get script directory
10
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
-
12
- # Determine config directory (project-local first, then global)
13
- if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
14
- CONFIG_DIR="$CLAUDE_PROJECT_DIR/.claude/config"
15
- else
16
- # Try to find .claude in current path
17
- CURRENT_DIR="$PWD"
18
- while [[ "$CURRENT_DIR" != "/" ]]; do
19
- if [[ -d "$CURRENT_DIR/.claude" ]]; then
20
- CONFIG_DIR="$CURRENT_DIR/.claude/config"
21
- break
22
- fi
23
- CURRENT_DIR=$(dirname "$CURRENT_DIR")
24
- done
25
- # Fallback to global
26
- if [[ -z "$CONFIG_DIR" ]]; then
27
- CONFIG_DIR="$HOME/.claude/config"
28
- fi
29
- fi
30
-
31
- mkdir -p "$CONFIG_DIR"
32
-
33
- MAIN_SPEED_FILE="$CONFIG_DIR/tts-speech-rate.txt"
34
- TARGET_SPEED_FILE="$CONFIG_DIR/tts-target-speech-rate.txt"
35
-
36
- # Legacy file paths for backward compatibility (Piper-specific naming)
37
- LEGACY_MAIN_SPEED_FILE="$CONFIG_DIR/piper-speech-rate.txt"
38
- LEGACY_TARGET_SPEED_FILE="$CONFIG_DIR/piper-target-speech-rate.txt"
39
-
40
- # @function parse_speed_value
41
- # @intent Convert user-friendly speed notation to normalized speed multiplier
42
- # @param $1 Speed string (e.g., "2x", "0.5x", "normal")
43
- # @returns Numeric speed value (0.5=slower, 1.0=normal, 2.0=faster, 3.0=very fast)
44
- # @note This is the user-facing scale - provider scripts will convert as needed
45
- parse_speed_value() {
46
- local input="$1"
47
-
48
- # Handle special cases
49
- case "$input" in
50
- normal|1x|1.0)
51
- echo "1.0"
52
- return
53
- ;;
54
- slow|slower|0.5x)
55
- echo "0.5"
56
- return
57
- ;;
58
- fast|2x|2.0)
59
- echo "2.0"
60
- return
61
- ;;
62
- faster|3x|3.0)
63
- echo "3.0"
64
- return
65
- ;;
66
- esac
67
-
68
- # Strip leading '+' or '-' if present
69
- input="${input#+}"
70
- input="${input#-}"
71
-
72
- # Strip trailing 'x' if present
73
- input="${input%x}"
74
-
75
- # Validate it's a number
76
- if [[ "$input" =~ ^[0-9]+\.?[0-9]*$ ]]; then
77
- echo "$input"
78
- else
79
- echo "ERROR"
80
- fi
81
- }
82
-
83
- # @function set_speed
84
- # @intent Set speech speed for main or target voice
85
- # @param $1 Target ("target" or empty for main)
86
- # @param $2 Speed value
87
- set_speed() {
88
- local is_target=false
89
- local speed_input=""
90
-
91
- # Parse arguments
92
- if [[ "$1" == "target" ]]; then
93
- is_target=true
94
- speed_input="$2"
95
- else
96
- speed_input="$1"
97
- fi
98
-
99
- if [[ -z "$speed_input" ]]; then
100
- echo "❌ Error: Speed value required"
101
- echo "Usage: /agent-vibes:set-speed [target] <speed>"
102
- echo "Examples: 2x, 0.5x, normal, +3x"
103
- return 1
104
- fi
105
-
106
- # Parse speed value
107
- local speed_value
108
- speed_value=$(parse_speed_value "$speed_input")
109
-
110
- if [[ "$speed_value" == "ERROR" ]]; then
111
- echo "❌ Invalid speed value: $speed_input"
112
- echo "Valid values: normal, 0.5x, 1x, 2x, 3x, +2x, -2x"
113
- return 1
114
- fi
115
-
116
- # Determine which file to write to
117
- local config_file
118
- local voice_type
119
- if [[ "$is_target" == true ]]; then
120
- config_file="$TARGET_SPEED_FILE"
121
- voice_type="target language"
122
- else
123
- config_file="$MAIN_SPEED_FILE"
124
- voice_type="main voice"
125
- fi
126
-
127
- # Write speed value
128
- echo "$speed_value" > "$config_file"
129
-
130
- # Show confirmation
131
- echo "✓ Speech speed set for $voice_type"
132
- echo ""
133
- echo "Speed: ${speed_value}x"
134
-
135
- case "$speed_value" in
136
- 0.5)
137
- echo "Effect: Half speed (slower)"
138
- ;;
139
- 1.0)
140
- echo "Effect: Normal speed"
141
- ;;
142
- 2.0)
143
- echo "Effect: Double speed (faster)"
144
- ;;
145
- 3.0)
146
- echo "Effect: Triple speed (very fast)"
147
- ;;
148
- *)
149
- if (( $(echo "$speed_value > 1.0" | bc -l) )); then
150
- echo "Effect: Faster speech"
151
- else
152
- echo "Effect: Slower speech"
153
- fi
154
- ;;
155
- esac
156
-
157
- echo ""
158
- echo "Note: Speed control works with both Piper and ElevenLabs providers"
159
-
160
- # Array of tongue twisters to demonstrate speed
161
- local tongue_twisters=(
162
- "Peter Piper picked a peck of pickled peppers"
163
- "She sells seashells by the seashore"
164
- "How much wood would a woodchuck chuck if a woodchuck could chuck wood"
165
- "Fuzzy Wuzzy was a bear, Fuzzy Wuzzy had no hair"
166
- "I scream, you scream, we all scream for ice cream"
167
- "Red lorry, yellow lorry, red lorry, yellow lorry"
168
- "Six slippery snails slid slowly seaward"
169
- )
170
-
171
- # Pick a random tongue twister
172
- local random_index=$((RANDOM % ${#tongue_twisters[@]}))
173
- local test_msg="${tongue_twisters[$random_index]}"
174
-
175
- echo ""
176
- echo "🔊 Testing new speed with: \"$test_msg\""
177
- "$SCRIPT_DIR/play-tts.sh" "$test_msg" &
178
- }
179
-
180
- # @function migrate_legacy_files
181
- # @intent Migrate from old piper-specific files to provider-agnostic files
182
- # @why Ensure backward compatibility when upgrading from Piper-only to multi-provider
183
- migrate_legacy_files() {
184
- # Migrate main speed file
185
- if [[ -f "$LEGACY_MAIN_SPEED_FILE" ]] && [[ ! -f "$MAIN_SPEED_FILE" ]]; then
186
- cp "$LEGACY_MAIN_SPEED_FILE" "$MAIN_SPEED_FILE"
187
- fi
188
-
189
- # Migrate target speed file
190
- if [[ -f "$LEGACY_TARGET_SPEED_FILE" ]] && [[ ! -f "$TARGET_SPEED_FILE" ]]; then
191
- cp "$LEGACY_TARGET_SPEED_FILE" "$TARGET_SPEED_FILE"
192
- fi
193
- }
194
-
195
- # @function get_speed
196
- # @intent Display current speech speed settings
197
- get_speed() {
198
- # Migrate legacy files if needed
199
- migrate_legacy_files
200
-
201
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
202
- echo " Current Speech Speed Settings"
203
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
204
- echo ""
205
-
206
- # Main voice speed
207
- if [[ -f "$MAIN_SPEED_FILE" ]]; then
208
- local main_speed=$(grep -v '^#' "$MAIN_SPEED_FILE" 2>/dev/null | grep -v '^$' | tail -1)
209
- echo "Main voice: ${main_speed}x"
210
- else
211
- echo "Main voice: 1.0x (default, normal speed)"
212
- fi
213
-
214
- # Target voice speed
215
- if [[ -f "$TARGET_SPEED_FILE" ]]; then
216
- local target_speed=$(cat "$TARGET_SPEED_FILE" 2>/dev/null)
217
- echo "Target language: ${target_speed}x"
218
- else
219
- echo "Target language: 0.5x (default, slower for learning)"
220
- fi
221
-
222
- echo ""
223
- echo "Scale: 0.5x=slower, 1.0x=normal, 2.0x=faster, 3.0x=very fast"
224
- echo "Works with: Piper TTS and ElevenLabs"
225
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
226
- }
227
-
228
- # Main command handler
229
- case "${1:-}" in
230
- target)
231
- set_speed "target" "$2"
232
- ;;
233
- get|status)
234
- get_speed
235
- ;;
236
- normal|fast|slow|slower|*x|*.*|+*|-*)
237
- set_speed "$1"
238
- ;;
239
- *)
240
- echo "Speech Speed Manager"
241
- echo ""
242
- echo "Usage:"
243
- echo " /agent-vibes:set-speed <speed> Set main voice speed"
244
- echo " /agent-vibes:set-speed target <speed> Set target language speed"
245
- echo " /agent-vibes:set-speed get Show current speeds"
246
- echo ""
247
- echo "Speed values:"
248
- echo " 0.5x or slow/slower = Half speed (slower)"
249
- echo " 1x or normal = Normal speed"
250
- echo " 2x or fast = Double speed (faster)"
251
- echo " 3x or faster = Triple speed (very fast)"
252
- echo ""
253
- echo "Examples:"
254
- echo " /agent-vibes:set-speed 2x # Make voice faster"
255
- echo " /agent-vibes:set-speed 0.5x # Make voice slower"
256
- echo " /agent-vibes:set-speed target 0.5x # Slow down target language for learning"
257
- echo " /agent-vibes:set-speed normal # Reset to normal"
258
- ;;
259
- esac