Skip to content

RE1-T115 Changing default TTS voice#356

Merged
ucswift merged 1 commit intomasterfrom
develop
May 2, 2026
Merged

RE1-T115 Changing default TTS voice#356
ucswift merged 1 commit intomasterfrom
develop

Conversation

@ucswift
Copy link
Copy Markdown
Member

@ucswift ucswift commented May 2, 2026

Summary by CodeRabbit

  • Chores
    • Updated default text-to-speech voice setting to en-us+f3 across system configuration and deployment settings.
    • Added new TTS voice variant to the available voice options.
    • Updated test expectations to align with new default voice configuration.

@request-info
Copy link
Copy Markdown

request-info Bot commented May 2, 2026

Thanks for opening this, but we'd appreciate a little more information. Could you update it with more details?

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 2, 2026

📝 Walkthrough

Walkthrough

The default TTS voice setting is updated from "en-us" to "en-us+f3" across configuration classes, voice catalog, deployment configuration, and all related tests to establish a new system-wide default.

Changes

Default TTS Voice Configuration Update

Layer / File(s) Summary
Core Configuration
Core/Resgrid.Config/TtsConfig.cs, Web/Resgrid.Web.Tts/Configuration/TtsOptions.cs
Default voice setting is changed from "en-us" to "en-us+f3" in static and property-based configuration.
Voice Catalog
Core/Resgrid.Model/EspeakVoiceCatalog.cs
New voice option TtsVoiceOption("en-us+f3", "English", "American Female 3") is added to VoicesInternal, and DefaultIdentifier is updated from "en-us" to "en-us+f3".
Infrastructure Configuration
Web/Resgrid.Web.Tts/k8s/deployment.yaml
Kubernetes ConfigMap entry RESGRID__TtsConfig__DefaultVoice is updated to en-us+f3.
Tests & Fixtures
Tests/Resgrid.Tests/Services/DepartmentSettingsServiceTtsLanguageTests.cs, Tests/Resgrid.Tests/Web/Tts/TtsAdminControllerTests.cs, Tests/Resgrid.Tests/Web/Tts/TtsServiceTests.cs
Test setup and assertions are updated to configure and expect the new default voice "en-us+f3" across cache-key generation, mock audio generation calls, and result verification.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: updating the default TTS voice setting from 'en-us' to 'en-us+f3' across configuration files, tests, and deployment manifests.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
Core/Resgrid.Model/EspeakVoiceCatalog.cs (1)

40-40: Verify eSpeak-ng variant data is installed in the container image.

The eSpeak variants +f1 through +f5 simulate female voices and are described in variant files that can be used as a ...+variant option for any language. These variant files are located in the espeak-ng-data/voices/!v subfolder.

If the container image installs espeak-ng but not the voice data package (e.g., espeak-ng-data on Debian/Ubuntu), the f3 variant file may be absent. eSpeak-ng would then silently fall back to the base en-us voice, producing audio without the intended female pitch modification — a soft failure with no error surfaced to the caller.

Please confirm that the Dockerfile (or the base image used by resgridllc/resgridwebtts) installs the full eSpeak-ng data package and verify the variant is functional with a quick smoke test against the container.

Also applies to: 144-144

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Core/Resgrid.Model/EspeakVoiceCatalog.cs` at line 40, The TtsVoiceOption
entry "en-us+f3" in EspeakVoiceCatalog.cs may reference an eSpeak-ng variant
file that isn't present if the container image installs espeak-ng but not the
espeak-ng data package; update the container setup to install the full eSpeak-ng
data (e.g., espeak-ng-data on Debian/Ubuntu or ensure the base image
resgridllc/resgridwebtts includes voices/!v), then run a quick smoke test inside
the container to synthesize a sample using the en-us+f3 variant to verify the
female variant is applied; if you prefer, add a runtime validation (e.g., at
TtsVoiceOption load time) to warn or fall back when a variant produces identical
output to the base voice.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@Core/Resgrid.Model/EspeakVoiceCatalog.cs`:
- Line 40: The TtsVoiceOption entry "en-us+f3" in EspeakVoiceCatalog.cs may
reference an eSpeak-ng variant file that isn't present if the container image
installs espeak-ng but not the espeak-ng data package; update the container
setup to install the full eSpeak-ng data (e.g., espeak-ng-data on Debian/Ubuntu
or ensure the base image resgridllc/resgridwebtts includes voices/!v), then run
a quick smoke test inside the container to synthesize a sample using the
en-us+f3 variant to verify the female variant is applied; if you prefer, add a
runtime validation (e.g., at TtsVoiceOption load time) to warn or fall back when
a variant produces identical output to the base voice.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a47050b1-4b7c-4510-9f1d-ab837dbbcac9

📥 Commits

Reviewing files that changed from the base of the PR and between 44cffc2 and 5b21ba1.

📒 Files selected for processing (7)
  • Core/Resgrid.Config/TtsConfig.cs
  • Core/Resgrid.Model/EspeakVoiceCatalog.cs
  • Tests/Resgrid.Tests/Services/DepartmentSettingsServiceTtsLanguageTests.cs
  • Tests/Resgrid.Tests/Web/Tts/TtsAdminControllerTests.cs
  • Tests/Resgrid.Tests/Web/Tts/TtsServiceTests.cs
  • Web/Resgrid.Web.Tts/Configuration/TtsOptions.cs
  • Web/Resgrid.Web.Tts/k8s/deployment.yaml

@ucswift
Copy link
Copy Markdown
Member Author

ucswift commented May 2, 2026

Approve

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is approved.

@ucswift ucswift merged commit a8601ab into master May 2, 2026
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant