Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Validate

# Standard Home Assistant / HACS validation for the custom integration:
# - hassfest validates the integration manifest and structure.
# - HACS action validates the repository is installable through HACS.

on:
push:
branches:
- master
pull_request:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:

jobs:
hassfest:
name: Hassfest
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v6

- name: Run hassfest
uses: home-assistant/actions/hassfest@master

hacs:
name: HACS
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v6

- name: Run HACS validation
uses: hacs/action@main
with:
category: integration
# The domain is not registered in home-assistant/brands (this is a
# custom integration), so skip the brands check.
ignore: brands
4 changes: 3 additions & 1 deletion custom_components/speaker_recognition/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@
"dependencies": [
"stt"
],
"documentation": "https://github.com/EuleMitKeule/speaker-recognition",
"integration_type": "service",
"iot_class": "calculated",
"issue_tracker": "https://github.com/EuleMitKeule/speaker-recognition/issues",
"requirements": [
"hass-speaker-recognition>=0.0.0-dev"
"hass-speaker-recognition>=1.0.0"
],
"version": "0.0.0-dev"
}
97 changes: 97 additions & 0 deletions custom_components/speaker_recognition/strings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
{
"config": {
"step": {
"main": {
"title": "Speaker Recognition",
"description": "Connect to the Speaker Recognition backend and optionally add voice samples to train users.",
"data": {
"backend_url": "Backend URL",
"voice_samples": "Voice samples"
},
"data_description": {
"backend_url": "URL of the Speaker Recognition server (e.g. http://localhost:8099)",
"voice_samples": "For each user, select one or more audio files to train their voice"
}
},
"menu": {
"title": "Add a proxy",
"description": "Add a proxy entity that adds speaker recognition to an existing speech-to-text or conversation entity.",
"menu_options": {
"add_stt": "Speech-to-text (STT) proxy",
"add_conversation": "Conversation agent proxy"
}
},
"add_stt": {
"title": "Add STT proxy",
"description": "Wrap a speech-to-text entity so the speaker is recognised from the spoken audio. Use the created proxy entity in your Assist pipeline.",
"data": {
"stt_entity": "Speech-to-text entity"
},
"data_description": {
"stt_entity": "The STT entity to wrap"
}
},
"add_conversation": {
"title": "Add conversation proxy",
"description": "Wrap a conversation agent so the recognised speaker is passed to it. Use the created proxy entity in your Assist pipeline.",
"data": {
"conversation_entity": "Conversation agent",
"min_confidence": "Minimum confidence"
},
"data_description": {
"conversation_entity": "The conversation agent to wrap",
"min_confidence": "Minimum recognition confidence (0.0-1.0) required before the recognised speaker is applied"
}
}
},
"error": {
"not_stt_entity": "The selected entity is not a speech-to-text entity",
"not_conversation_entity": "The selected entity is not a conversation agent"
},
"abort": {
"already_configured": "This proxy is already configured"
}
},
"options": {
"step": {
"main_options": {
"title": "Speaker Recognition",
"description": "Update the backend connection and voice samples.",
"data": {
"backend_url": "Backend URL",
"voice_samples": "Voice samples"
},
"data_description": {
"backend_url": "URL of the Speaker Recognition server (e.g. http://localhost:8099)",
"voice_samples": "For each user, select one or more audio files to train their voice"
}
},
"stt_options": {
"title": "Configure STT proxy",
"description": "Update the wrapped speech-to-text entity.",
"data": {
"stt_entity": "Speech-to-text entity"
},
"data_description": {
"stt_entity": "The STT entity to wrap"
}
},
"conversation_options": {
"title": "Configure conversation proxy",
"description": "Update the wrapped conversation agent and confidence threshold.",
"data": {
"conversation_entity": "Conversation agent",
"min_confidence": "Minimum confidence"
},
"data_description": {
"conversation_entity": "The conversation agent to wrap",
"min_confidence": "Minimum recognition confidence (0.0-1.0) required before the recognised speaker is applied"
}
}
},
"error": {
"not_stt_entity": "The selected entity is not a speech-to-text entity",
"not_conversation_entity": "The selected entity is not a conversation agent"
}
}
}
84 changes: 50 additions & 34 deletions custom_components/speaker_recognition/translations/de.json
Original file line number Diff line number Diff line change
@@ -1,81 +1,97 @@
{
"config": {
"step": {
"user": {
"title": "Helfertyp wählen",
"description": "Wählen Sie den Typ des Sprechererkennungshelfers aus.",
"main": {
"title": "Sprechererkennung",
"description": "Verbinden Sie sich mit dem Sprechererkennungs-Backend und fügen Sie optional Sprachproben hinzu, um Benutzer zu trainieren.",
"data": {
"helper_type": "Helfertyp"
"backend_url": "Backend-URL",
"voice_samples": "Sprachproben"
},
"data_description": {
"backend_url": "URL des Sprechererkennungs-Servers (z. B. http://localhost:8099)",
"voice_samples": "Wählen Sie für jeden Benutzer eine oder mehrere Audiodateien aus, um seine Stimme zu trainieren"
}
},
"menu": {
"title": "Proxy hinzufügen",
"description": "Fügen Sie eine Proxy-Entität hinzu, die einer vorhandenen Sprache-zu-Text- oder Konversations-Entität Sprechererkennung hinzufügt.",
"menu_options": {
"add_stt": "Sprache-zu-Text-Proxy (STT)",
"add_conversation": "Konversationsagent-Proxy"
}
},
"stt": {
"title": "STT-Proxy einrichten",
"description": "Konfigurieren Sie die STT-Entität und Sprachproben für die Sprechererkennung.",
"add_stt": {
"title": "STT-Proxy hinzufügen",
"description": "Umschließt eine Sprache-zu-Text-Entität, sodass der Sprecher aus dem gesprochenen Audio erkannt wird. Verwenden Sie die erstellte Proxy-Entität in Ihrer Assist-Pipeline.",
"data": {
"stt_entity": "Sprache-zu-Text-Entität",
"voice_samples": "Sprachproben"
"stt_entity": "Sprache-zu-Text-Entität"
},
"data_description": {
"stt_entity": "Wählen Sie die STT-Entität für die Sprechererkennung aus",
"voice_samples": "Konfigurieren Sie Sprachproben für jeden Benutzer, um die Sprechererkennung zu aktivieren"
"stt_entity": "Die zu umschließende STT-Entität"
}
},
"conversation": {
"title": "Konversations-Proxy einrichten",
"description": "Konfigurieren Sie den Konversationsagenten und die Mindestkonfidenz.",
"add_conversation": {
"title": "Konversations-Proxy hinzufügen",
"description": "Umschließt einen Konversationsagenten, sodass der erkannte Sprecher an ihn übergeben wird. Verwenden Sie die erstellte Proxy-Entität in Ihrer Assist-Pipeline.",
"data": {
"conversation_entity": "Konversationsagent",
"min_confidence": "Mindestkonfidenz"
},
"data_description": {
"conversation_entity": "Wählen Sie den zu umschließenden Konversationsagenten aus",
"min_confidence": "Erforderliche Mindesterkennungskonfidenz zum Setzen der Benutzer-ID (0.0-1.0)"
"conversation_entity": "Der zu umschließende Konversationsagent",
"min_confidence": "Mindesterkennungskonfidenz (0.0-1.0), bevor der erkannte Sprecher angewendet wird"
}
}
},
"error": {
"not_stt_entity": "Die ausgewählte Entität ist keine Sprache-zu-Text-Entität",
"not_conversation_entity": "Die ausgewählte Entität ist kein Konversationsagent",
"user_already_configured": "Für diesen Benutzer wurden bereits Sprachproben konfiguriert"
"not_conversation_entity": "Die ausgewählte Entität ist kein Konversationsagent"
},
"abort": {
"already_configured": "Dieser Proxy ist bereits konfiguriert"
}
},
"options": {
"step": {
"main_options": {
"title": "Sprechererkennung",
"description": "Aktualisieren Sie die Backend-Verbindung und die Sprachproben.",
"data": {
"backend_url": "Backend-URL",
"voice_samples": "Sprachproben"
},
"data_description": {
"backend_url": "URL des Sprechererkennungs-Servers (z. B. http://localhost:8099)",
"voice_samples": "Wählen Sie für jeden Benutzer eine oder mehrere Audiodateien aus, um seine Stimme zu trainieren"
}
},
"stt_options": {
"title": "STT-Proxy konfigurieren",
"description": "Aktualisieren Sie die STT-Entität und Sprachproben.",
"description": "Aktualisieren Sie die umschlossene Sprache-zu-Text-Entität.",
"data": {
"stt_entity": "Sprache-zu-Text-Entität",
"voice_samples": "Sprachproben"
"stt_entity": "Sprache-zu-Text-Entität"
},
"data_description": {
"stt_entity": "Wählen Sie die STT-Entität für die Sprechererkennung aus",
"voice_samples": "Fügen Sie Sprachproben für die Sprechererkennung hinzu oder ändern Sie diese"
"stt_entity": "Die zu umschließende STT-Entität"
}
},
"conversation_options": {
"title": "Konversations-Proxy konfigurieren",
"description": "Aktualisieren Sie den Konversationsagenten und die Mindestkonfidenz.",
"description": "Aktualisieren Sie den umschlossenen Konversationsagenten und den Konfidenzschwellwert.",
"data": {
"conversation_entity": "Konversationsagent",
"min_confidence": "Mindestkonfidenz"
},
"data_description": {
"conversation_entity": "Wählen Sie den zu umschließenden Konversationsagenten aus",
"min_confidence": "Erforderliche Mindesterkennungskonfidenz zum Setzen der Benutzer-ID (0.0-1.0)"
"conversation_entity": "Der zu umschließende Konversationsagent",
"min_confidence": "Mindesterkennungskonfidenz (0.0-1.0), bevor der erkannte Sprecher angewendet wird"
}
}
},
"error": {
"not_stt_entity": "Die ausgewählte Entität ist keine Sprache-zu-Text-Entität",
"not_conversation_entity": "Die ausgewählte Entität ist kein Konversationsagent",
"user_already_configured": "Für diesen Benutzer wurden bereits Sprachproben konfiguriert"
}
},
"selector": {
"voice_samples": {
"user": "Benutzer",
"samples": "Audiodatei"
"not_conversation_entity": "Die ausgewählte Entität ist kein Konversationsagent"
}
}
}
Loading