Действие в Google - настраиваемое действие на немецком языке с использованием action sdk

Я разрабатываю распознавание речи для пользовательского устройства с помощью Google Assistant SDK. Я использую Action SDK для создания настраиваемых действий.

В моем примере Google Assistant не распознает действия на немецком языке, если эти действия отмечены знаком "locale": "de", а язык помощников установлен на немецкий. Я понял, что шаблоны запросов понятны, но событие не запускается. Если все настроено на английский, события запускаются.

action.json

{
    "locale": "de",
    "manifest": {
        "displayName": "Blink Licht",
        "invocationName": "Blink Licht",
        "category": "PRODUCTIVITY"
    },
    "actions": [
        {
            "name": "com.acme.actions.blink_light",
            "availability": {
                "deviceClasses": [
                    {
                        "assistantSdkDevice": {}
                    }
                ]
            },
            "intent": {
                "name": "com.acme.intents.blink_light",
                "parameters": [
                    {
                        "name": "number",
                        "type": "SchemaOrg_Number"
                    },
                    {
                        "name": "light_target",
                        "type": "LightType"
                    }
                ],
                "trigger": {
                    "queryPatterns": [
                        "lasse das $LightType:light_target $SchemaOrg_Number:number mal blinken"
                    ]
                }
            },
            "fulfillment": {
                "staticFulfillment": {
                    "templatedResponse": {
                        "items": [
                            {
                                "simpleResponse": {
                                    "textToSpeech": "Das Licht $light_target.raw blinkt $number mal"
                                }
                            },
                            {
                                "deviceExecution": {
                                    "command": "com.acme.commands.blink_light",
                                    "params": {
                                        "lightKey": "$light_target",
                                        "number": "$number"
                                    }
                                }
                            }
                        ]
                    }
                }
            }
        }
    ],
    "types": [
        {
            "name": "$LightType",
            "entities": [
                {
                    "key": "LIGHT",
                    "synonyms": [
                        "Licht",
                        "LED",
                        "Glühbirne"]
                }
            ]
        }
    ]
}

hotword.py - убрана обработка событий

def process_event(event, device_id):
    """Pretty prints events.

    Prints all events that occur with two spaces between each new
    conversation and a single space between turns of a conversation.

    Args:
        event(event.Event): The current event to process.
        device_id(str): The device ID of the new instance.
    """
    if event.type == EventType.ON_CONVERSATION_TURN_STARTED:
        print()

    print(event)

    if (event.type == EventType.ON_CONVERSATION_TURN_FINISHED and
            event.args and not event.args['with_follow_on_turn']):
        print()
    if event.type == EventType.ON_DEVICE_ACTION:
        for command, params in process_device_actions(event, device_id):
            print('Do command', command, 'with params', str(params))  # 
            if command == "com.acme.commands.blink_light":
                number = int(params['number'])
                for i in range(int(number)):
                    print('Device is blinking.')

Язык проекта в консоли действий - немецкий: введите здесь описание изображения

Чтобы обновить и сделать действие доступным для тестирования, я использовал "gaction CLI".

Вопрос: почему событие / команда "com.acme.commands.blink_light" в hotword.py не запускается при использовании немецкого языка?

Спасибо с нетерпением!


person Luk    schedule 19.03.2018    source источник
comment
Если вы помечаете Ассистента как немецкий, это можно сделать в настройках Google Ассистента на вашем телефоне? Если в вашем пакете действий нет locale: "de", срабатывают ли команды, когда вы говорите с ним по-немецки?   -  person Nick Felker    schedule 19.03.2018
comment
1. Да, я помечаю Ассистента как немецкий в настройках Google Ассистента на моем телефоне.   -  person Luk    schedule 20.03.2018
comment
2. Если я удалю locale: "de" в пакете действий, я не смогу тестировать. После ./gactions test ... появляется следующая ошибка: Pushing the app for the Assistant for testing... ERROR: Failed to test the app for the Assistant ERROR: Request contains an invalid argument. Field Violations: # Field Description 1 Could not find draft details for 'de' locale   -  person Luk    schedule 20.03.2018
comment
Язык вашего проекта в консоли действий - немецкий?   -  person Nick Felker    schedule 20.03.2018
comment
Да, это так (см. Править)   -  person Luk    schedule 21.03.2018
comment
Можете ли вы установить язык в консоли на английский (США), исключить поле языкового стандарта в своем пакете действий и попробовать развернуть его снова?   -  person Nick Felker    schedule 21.03.2018


Ответы (1)


Вот как я решил эту проблему: 1. Перейдите к своему действию в консоли Google и выберите проект, с которым у вас возникла проблема. 2. В разделе «Обзор» вы увидите окно с языками вашего действия вверху, а справа от них синим цветом «Изменить языки». Щелкните по нему и затем удалите язык, который вы не используете, в данном случае английский.

По крайней мере, у меня это сработало.

person Giorgio Maritano    schedule 19.07.2018