-
-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Update google_generative_ai_conversation.markdown to document support for Gemini's new TTS capabilities #39340
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for home-assistant-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughThe integration metadata for the Google Generative AI conversation was updated to include "Text-to-speech" as an additional category alongside "Voice" and to add the "tts" platform. Documentation was added for the new Changes
Sequence Diagram(s)No sequence diagram generated as the changes are limited to metadata and documentation updates. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🧹 Nitpick comments (14)
Gemfile (2)
6-6
: Bump rake version to 13.3.0
This is a minor update; please verify that existing Rake tasks run successfully under the new version.Additionally, consider alphabetically sorting gems within the
:development
group (e.g.,compass
,jekyll
,rackup
,rake
, …) to satisfy Bundler/OrderedGems and avoid linter warnings.
14-14
: Upgrade rubocop to 1.75.8
Patch-level bump—ensure your CI linting results remain consistent with the updated version.For clarity and to adhere to Bundler/OrderedGems, you may want to move
gem 'rubocop'
so it appears alphabetically beforesass-embedded
.🧰 Tools
🪛 RuboCop (1.75.5)
[convention] 14-14: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem
rubocop
should appear beforesass-embedded
.(Bundler/OrderedGems)
source/voice-pe/styles.css (2)
2889-2891
: Centralize margin adjustments for.fs-price
You’ve changed the globalmargin-bottom
on.vpe-main #pricing .fs-price
from-20px
to-10px
, but you then override it again in breakpoints. Consider grouping all margin-top/bottom rules for this selector together (or within a single media query) to avoid cascade confusion and redundant overrides.
4902-4906
: Duplicate margin-bottom override at 940px breakpoint
This media query restatesmargin-bottom: -10px
, which matches the global declaration. If the intent was only to adjust that value at this breakpoint, verify if the global rule can be simplified or if this override can be removed to reduce redundancy.source/voice-pe/index.html (2)
211-211
: Enhance accessibility for price display
The updated dual‐currency price"$69 / €59"
is correct. To improve screen reader support, consider adding anaria-label
, for example:- <div class="fs-price">$69 / €59 <span>*</span></div> + <div class="fs-price" aria-label="Price: 69 US dollars or 59 euros">$69 / €59 <span>*</span></div>
220-220
: Refine footnote punctuation
The footnote reads smoothly, but the comma before “and subject to individual retailers” could be replaced with a semicolon or split into two sentences for clarity:- <small>* Recommended MSRP. Prices differ between regions due to varying local market costs and conditions, and subject to individual retailers.</small> + <small>* Recommended MSRP. Prices differ between regions due to varying local market costs and conditions; subject to individual retailers.</small>source/_integrations/eafm.markdown (1)
17-17
: Remove trailing whitespace.There’s an extra space at the end of this line, which triggers a lint warning (MD009). Please remove the trailing space for consistency.
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
17-17: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
source/_integrations/esphome.markdown (2)
120-120
: Spelling refinement: "bi-directional" → "bidirectional"
In American English (and House style), "bidirectional" is typically written as one word.- ESPHome uses a lightweight, bi-directional protocol over TCP + ESPHome uses a lightweight, bidirectional protocol over TCP🧰 Tools
🪛 LanguageTool
[misspelling] ~120-~120: This word is normally spelled as one.
Context: ...Protocol**: ESPHome uses a lightweight, bi-directional protocol over TCP, optimized for microc...(EN_COMPOUNDS_BI_DIRECTIONAL)
262-262
: Ensure single trailing newline
Add exactly one newline at end-of-file to satisfy markdownlint rule MD047.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
262-262: Files should end with a single newline character
null(MD047, single-trailing-newline)
source/_integrations/tts.markdown (3)
49-49
: Refine phrasing for cache reference
Add "the" before "cache" to improve readability.- See [cache section](#cache) for information on `cache` option. + See the [cache section](#cache) for information on the `cache` option.🧰 Tools
🪛 LanguageTool
[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...che section](#cache) for information oncache
option. Additional settings can b...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
62-62
: Refine phrasing for legacy action
Add "the" before "cache" for consistency with the speak action description.- See [cache section](#cache) for information on `cache` option. + See the [cache section](#cache) for information on the `cache` option.🧰 Tools
🪛 LanguageTool
[uncategorized] ~62-~62: You might be missing the article “the” here.
Context: ...che section](#cache) for information oncache
option. Additional settings can b...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
108-108
: Use "long-term" instead of "long time"
"Long-term cache" is the conventional term.- A long time cache will be located on the file system. + A long-term cache will be located on the file system.🧰 Tools
🪛 LanguageTool
[uncategorized] ~108-~108: This adjective is normally spelled with a hyphen (British English) or as one word (American English).
Context: ... (default), orFalse
to disable it. A long time cache will be located on the file syste...(TIME_HYPHEN)
source/_integrations/google_generative_ai_conversation.markdown (2)
194-197
: Trim trailing spaces
Remove the extra space at end of line 194 to satisfy markdownlint MD009.- The `tts.speak` action is the modern way to use TTS. Add the `speak` action, select the entity... + The `tts.speak` action is the modern way to use TTS. Add the `speak` action, select the entity...🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
194-194: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
214-214
: Remove extra blank line
There are two blank lines after the snippet—reduce to one to satisfy markdownlint MD012.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
214-214: Multiple consecutive blank lines
Expected: 1; Actual: 2(MD012, no-multiple-blanks)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
⛔ Files ignored due to path filters (2)
Gemfile.lock
is excluded by!**/*.lock
source/images/assist/esp32-atom_silence_detection_01.png
is excluded by!**/*.png
📒 Files selected for processing (20)
.github/workflows/test.yml
(1 hunks)Gemfile
(1 hunks)source/_docs/authentication/providers.markdown
(1 hunks)source/_docs/configuration/templating.markdown
(1 hunks)source/_integrations/eafm.markdown
(1 hunks)source/_integrations/esphome.markdown
(7 hunks)source/_integrations/eve.markdown
(1 hunks)source/_integrations/google_generative_ai_conversation.markdown
(3 hunks)source/_integrations/govee_ble.markdown
(2 hunks)source/_integrations/ipp.markdown
(1 hunks)source/_integrations/linkplay.markdown
(1 hunks)source/_integrations/locative.markdown
(1 hunks)source/_integrations/matter.markdown
(1 hunks)source/_integrations/motionmount.markdown
(1 hunks)source/_integrations/scrape.markdown
(1 hunks)source/_integrations/tts.markdown
(4 hunks)source/voice-pe/index.html
(2 hunks)source/voice-pe/styles.css
(4 hunks)source/voice_control/index.markdown
(2 hunks)source/voice_control/thirteen-usd-voice-remote.markdown
(3 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/locative.markdown
[uncategorized] ~11-~11: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ps://www.locative.app/). Locative is an open source app for [iOS](https://apps.apple.com/us...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[style] ~17-~17: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ... that URL, updating Home Assistant. You are not able to specify a device name in Locative. Inst...
(BE_ABLE_TO)
[uncategorized] ~17-~17: This verb may not be in the correct tense. Consider changing the tense to fit the context better.
Context: ...have created on its first GET
. If you had been or are using Owntracks as well, yo...
(AI_EN_LECTOR_REPLACEMENT_VERB_TENSE)
source/_integrations/motionmount.markdown
[grammar] ~51-~51: You’ve repeated a verb. Did you mean to only write one of them?
Context: ...ets. Changes to the presets are {% term polling polled %}, by default every 60 seconds.
...
(REPEATED_VERBS)
source/_integrations/linkplay.markdown
[grammar] ~48-~48: Did you mean “saving”? Or maybe you should add a pronoun? In active voice, ‘allow’ + ‘to’ takes an object, usually a pronoun.
Context: ... Companion apps, such as 4stream, allow to save music presets (for example, Spotify pla...
(ALLOW_TO)
source/_integrations/esphome.markdown
[misspelling] ~120-~120: This word is normally spelled as one.
Context: ...Protocol**: ESPHome uses a lightweight, bi-directional protocol over TCP, optimized for microc...
(EN_COMPOUNDS_BI_DIRECTIONAL)
source/voice_control/thirteen-usd-voice-remote.markdown
[grammar] ~73-~73: Two determiners in a row. Choose either “the” or “a”.
Context: ...sp32-atom-flash-07.png) 6. This starts the a wizard to customize the your voice assi...
(DT_DT)
[grammar] ~73-~73: A determiner cannot be combined with a possessive pronoun. Did you mean simply “the” or “your”?
Context: .... This starts the a wizard to customize the your voice assistant. - Follow the wizard...
(A_MY)
source/_integrations/tts.markdown
[uncategorized] ~49-~49: You might be missing the article “the” here.
Context: ...che section](#cache) for information on cache
option. Additional settings can b...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[uncategorized] ~62-~62: You might be missing the article “the” here.
Context: ...che section](#cache) for information on cache
option. Additional settings can b...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[uncategorized] ~108-~108: This adjective is normally spelled with a hyphen (British English) or as one word (American English).
Context: ... (default), or False
to disable it. A long time cache will be located on the file syste...
(TIME_HYPHEN)
[uncategorized] ~118-~118: Loose punctuation mark.
Context: ...all optional, are: - preferred_format
: Set the audio format. When not supporte...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~119-~119: Loose punctuation mark.
Context: ... output files. - preferred_sample_rate
: Set the sample rate. When not supported...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~120-~120: Loose punctuation mark.
Context: ...mpeg tool. - preferred_sample_channels
: Set the number of audio channels. When ...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~121-~121: Loose punctuation mark.
Context: ... FFmpeg tool. - preferred_sample_bytes
: Set the audio bit sampling. When not su...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~123-~123: Possible missing comma found.
Context: ...ored). Example to produce an MP3 audio at 22050Hz: ```yaml action: tts.speak tar...
(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~199-~199: It appears that a comma is missing.
Context: ... format is not fully supported. In such cases it is required to experiment with diffe...
(DURING_THAT_TIME_COMMA)
[uncategorized] ~201-~201: You might be missing the article “the” here.
Context: ... example, some Google Cast devices skip initial audio part when the audio is sampled at...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[style] ~201-~201: Consider using a different verb for a more formal wording.
Context: ...the audio is sampled at 22050Hz, and to fix the problem it is required to set the `...
(FIX_RESOLVE)
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/locative.markdown
20-20: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
source/_integrations/eafm.markdown
17-17: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
source/_integrations/linkplay.markdown
25-25: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
29-29: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
30-30: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
45-45: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
48-48: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
53-53: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
54-54: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
source/_integrations/google_generative_ai_conversation.markdown
194-194: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
214-214: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
source/_integrations/esphome.markdown
262-262: Files should end with a single newline character
null
(MD047, single-trailing-newline)
source/_integrations/tts.markdown
201-201: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
🪛 RuboCop (1.75.5)
Gemfile
[convention] 7-7: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem jekyll
should appear before rake
.
(Bundler/OrderedGems)
[convention] 8-8: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem compass
should appear before jekyll
.
(Bundler/OrderedGems)
[convention] 14-14: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem rubocop
should appear before sass-embedded
.
(Bundler/OrderedGems)
🔇 Additional comments (34)
source/voice-pe/styles.css (1)
5198-5205
: Verify large-screen spacing jump
At this larger breakpoint, you flipmargin-bottom
back to-20px
and introducemargin-top: 20px
. This creates a significant spacing shift compared to the earlier-10px
baseline. Please confirm that this jump matches the UX design—screenshots or a design spec would help validate the change.source/voice-pe/index.html (1)
1-9
: Mismatch between PR objectives and file contents
The PR objective describes documenting Gemini’s new TTS capabilities ingoogle_generative_ai_conversation.markdown
, but this change updates pricing content in the Voice Preview Edition page. Please verify whether this file belongs in this PR.source/_docs/configuration/templating.markdown (1)
55-56
: Update anchor links to specific Jinja filter sections.The URLs now correctly point to the
float
andint
filter sections under#jinja-filters.float
and#jinja-filters.int
, ensuring accurate in-page navigation for users.source/_docs/authentication/providers.markdown (1)
164-164
: Generalize command-line auth provider description.The new description accurately reflects that the command-line provider can integrate with arbitrary external authentication services (e.g., plaintext databases, LDAP, RADIUS) without unnecessary installation-type constraints.
.github/workflows/test.yml (1)
17-26
: Enforce.markdown
file extension in integration docs.This new step checks for any
.md
files undersource/_integrations
, lists them if found, and fails the job with an exit code to prompt renaming to.markdown
. It aligns with the repository’s naming conventions and will help maintain consistency across integration documentation.source/_integrations/ipp.markdown (1)
1-12
: Standardize frontmatter delimiters.Replaced the YAML frontmatter delimiters from
----
to---
and normalized indentation/spacing, aligning with the project’s Markdown frontmatter conventions. No content was changed.source/_integrations/eafm.markdown (1)
1-11
: Standardize frontmatter delimiters.Changed the YAML frontmatter delimiters from
----
to---
and cleaned up indentation/spacing in the frontmatter to match other integration docs.source/_integrations/motionmount.markdown (1)
1-21
: Formatting consistency only
The updates here normalize frontmatter delimiters and whitespace without altering any content or instructions, aligning this file with the new documentation standards.source/_integrations/govee_ble.markdown (2)
35-35
: Clarify active scan requirement for H5075
Including “(Active scans required)” on the H5075 entry clearly communicates its discovery behavior. Looks good.
52-52
: Verify H5129 device information
Please confirm that H5129 is indeed a BLE device and that the linked URL points to the correct BLE product page rather than a Wi-Fi model.source/_integrations/locative.markdown (1)
1-9
: Frontmatter standardization
The YAML delimiters and surrounding whitespace have been normalized without any content changes, ensuring consistency across integration docs.source/_integrations/scrape.markdown (1)
63-66
: Addpayload_template
configuration
The newpayload_template
option complementspayload
by enabling Jinja templating for POST request payloads, matching the pattern used forresource_template
.source/_integrations/linkplay.markdown (1)
1-17
: Standardize frontmatter delimiters
The YAML frontmatter has been adjusted from four dashes to three, bringing it in line with the rest of the integration documentation. No semantic changes.source/_integrations/esphome.markdown (6)
52-52
: Consistent integration naming applied
The change to refer to the integration explicitly as ESPHome instead of generic wording improves clarity and consistency across documentation.
56-56
: Standardized heading casing
Updating "Key features" to sentence case aligns with project-wide heading conventions.
112-112: Clarified supported devices description
Refining the sentence to explicitly mention the ESPHome integration maintains consistency with other sections.
118-118
: Added technical details section
Introducing the "Additional technical details" heading helps users locate deeper protocol information.
183-183
: Moved "Viewing live logs" into troubleshooting
Repositioning this section under Troubleshooting improves the logical flow of the document.
196-196
: Moved "Obtaining logs from the device" section
Grouping the two log-related sections together enhances readability.source/voice_control/index.markdown (2)
33-33
: Approved: Heading capitalized to sentence case
Changing "Getting Started" to "Getting started" aligns with sentence-case conventions.
44-44
: Approved: Heading capitalized to sentence case
Changing "Expand and Experiment" to "Expand and experiment" keeps consistency.source/voice_control/thirteen-usd-voice-remote.markdown (3)
81-82
: No issues found in the updated list item; numbering and content appear correct.
93-94
: Approved: UI path text updated
Renaming "Devices & Services" to "Devices & services" and updating the setting name to "Finished speaking detection" matches UI labels.
105-122
: New section for removing Wi-Fi credentials is clear
The added instructions for erasing credentials are well-structured and improve the user experience for device handoff.source/_integrations/tts.markdown (4)
110-122
: Approved: Preferred audio settings section
The new section on preferred audio settings is thorough and provides the needed configuration details.🧰 Tools
🪛 LanguageTool
[uncategorized] ~118-~118: Loose punctuation mark.
Context: ...all optional, are: -preferred_format
: Set the audio format. When not supporte...(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~119-~119: Loose punctuation mark.
Context: ... output files. -preferred_sample_rate
: Set the sample rate. When not supported...(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~120-~120: Loose punctuation mark.
Context: ...mpeg tool. -preferred_sample_channels
: Set the number of audio channels. When ...(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~121-~121: Loose punctuation mark.
Context: ... FFmpeg tool. -preferred_sample_bytes
: Set the audio bit sampling. When not su...(UNLIKELY_OPENING_PUNCTUATION)
123-135
: Approved: MP3 example snippet
The example demonstrating MP3 and sample rate options is clear and practical.🧰 Tools
🪛 LanguageTool
[uncategorized] ~123-~123: Possible missing comma found.
Context: ...ored). Example to produce an MP3 audio at 22050Hz: ```yaml action: tts.speak tar...(AI_HYDRA_LEO_MISSING_COMMA)
141-141
: Approved: REST API enhancements documented
Includingcache
,language
, andoptions
in the API docs is accurate and helpful.
197-202
: Approved: Audio troubleshooting advice
The guidance on experimenting with preferred audio settings for problematic media players is essential.🧰 Tools
🪛 LanguageTool
[typographical] ~199-~199: It appears that a comma is missing.
Context: ... format is not fully supported. In such cases it is required to experiment with diffe...(DURING_THAT_TIME_COMMA)
[uncategorized] ~201-~201: You might be missing the article “the” here.
Context: ... example, some Google Cast devices skip initial audio part when the audio is sampled at...(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[style] ~201-~201: Consider using a different verb for a more formal wording.
Context: ...the audio is sampled at 22050Hz, and to fix the problem it is required to set the `...(FIX_RESOLVE)
🪛 markdownlint-cli2 (0.17.2)
201-201: Trailing spaces
Expected: 0 or 2; Actual: 1(MD009, no-trailing-spaces)
source/_integrations/google_generative_ai_conversation.markdown (4)
17-17
: Added TTS platform to integration metadata
Includingtts
alongside existing platforms properly reflects the new text-to-speech capability.
29-29
: Updated description to mention TTS engine
Clarifying that the integration now includes a speech engine aligns with the new feature set.
192-192
: New "Speak" section introduced
Adding a dedicated Speak section makes it easy to find TTS usage instructions.
200-212
: Approved: YAML usage example
The snippet clearly demonstrates how to configure the TTS action for this integration.source/_integrations/eve.markdown (1)
16-17
: Add explicit compatibility metadata correctly
The newworks_with
front matter key correctly declares Matter compatibility and aligns with the integration’s other metadata. YAML indentation and syntax look valid.source/_integrations/matter.markdown (1)
390-390
: Clarify supported OS path for Thread-based Matter devices
The added bullet clearly states the Home Assistant OS requirement (version 10+) and notes that standalone Docker is unsupported, linking to the Matter server docs. This improves clarity around installation support.
7606a04
to
be2e363
Compare
… for Gemini's new TTS capabilities
Proposed change
Document support for Gemini's new text-to-speech capabilities which are being introduced in home-assistant/core#145872
Type of change
current
branch).current
branch).next
branch).next
branch).Additional information
Checklist
current
branch.next
branch.Summary by CodeRabbit