Code Monkey home page Code Monkey logo

aimybox-android-sdk's People

Contributors

alexs-voir avatar alexs32 avatar antontinishov avatar bgubanov avatar bkrivenko avatar kusraevs avatar lambdatamer avatar maria-rlv avatar morfeusys avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aimybox-android-sdk's Issues

How to get the intent in Rasa server Response

Hi, I've followed this tutorial for building a voice assistant in my Android app, now I'm handling the responses I get from my Rasa server and I've realized that always, these reponses arrive to my app with action and intent = null, here is an example:

RasaResponse(query=hola, action=null, intent=null, question=true, replies=[com.justai.aimybox.model.reply.TextReply@5cbfc22])

Does anyone know how to configure Rasa or Aimybox to get the intent in the response? I've tried a lot of things that I've found searching but anything works.

Прерывание распознавания речи.

У нас в приложении необходимо поддерживать следующие сценарии:

  1. Если идет синтез речи (State.SPEAKING), при клике на кнопку распознавания нужно прервать речь и активировать распознование.
  2. Если происходит распознавание речи (State.LISTENING), при клике на кнопку распознавания нужно прервать распознавание и отправить запрос с уже распознанным текстом.
  3. Для увеличения скорости диалога необходимо сократить паузу в конце распознавания (когда State.LISTENING, но человек уже закончил говорить).

Для прерывания/переключения состояния распознавания в aimybox есть следующие методы: stopRecognition(), cancelRecognition(), toggleRecognition().

Для реализации 1 и 2 сценария мы вызываем toggleRecognition() при клике на кнопку распознавания + подписываемся на событие SpeechToText.Event.RecognitionCancelled - когда, оно прилетает, вызываем метод Aimybox sendRequest(query: String) с последним распознанным текстом.
В чем проблема: в большинстве случаев сценарии корректно отрабатывают, но есть случаи, когда 1) из-за прерывания распознавания неправильно прерывается метод send() в DialogApi и вызывает ошибку «kotlinx.coroutines.JobCancellationException: UndispatchedCoroutine was cancelled» - в результате в логах чередуются зафейлившийся и успешный запрос; 2) распознавание прерывается, но отправляется два запроса, в результате на экране дублируются и запрос и ответ; 3) запрос вообще не отправляется - в результате на экране повисает последний распознанный текст без ответа.

Для реализации сценария 3 мы смотрим на события, которые прилетают в speechToTextEvents, считаем количество событий AudioBufferReceived между событиями RecognitionPartialResult и, если их становится больше некой константы (сейчас у нас 3), то вручную прерываем распознавание. Для прерывания пробовали использовать каждый из трех методов stopRecognition(), cancelRecognition(), toggleRecognition(). cancelRecognition() и toggleRecognition() вызывают те же проблемы, что и в сценариях 1 и 2, только в бОльшем маштабе, т.к. это срабатывает при каждом запросе, а не только при нажатии на кнопку. А использование метода stopRecognition() крашит приложение со следующим стектрейсом:
kotlinx.coroutines.CompletionHandlerException: Exception in completion handler ChildCompletion[ChildHandle[StandaloneCoroutine{Completed}@a92f170], kotlin.Unit] for StandaloneCoroutine{Completed}@a92f170
at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1533)
at kotlinx.coroutines.JobSupport.completeStateFinalization(JobSupport.kt:323)
at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:240)
at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903)
at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:825)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:111)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
Caused by: java.lang.IllegalStateException: call already half-closed
at com.google.common.base.Preconditions.checkState(Preconditions.java:511)
at io.grpc.internal.ClientCallImpl.halfCloseInternal(ClientCallImpl.java:491)
at io.grpc.internal.ClientCallImpl.halfClose(ClientCallImpl.java:482)
at io.grpc.internal.DelayedClientCall$6.run(DelayedClientCall.java:361)
at io.grpc.internal.DelayedClientCall.delayOrExecute(DelayedClientCall.java:248)
at io.grpc.internal.DelayedClientCall.halfClose(DelayedClientCall.java:358)
at io.grpc.PartialForwardingClientCall.halfClose(PartialForwardingClientCall.java:44)
at io.grpc.ForwardingClientCall.halfClose(ForwardingClientCall.java:22)
at io.grpc.ForwardingClientCall$SimpleForwardingClientCall.halfClose(ForwardingClientCall.java:44)
at io.grpc.stub.ClientCalls$CallToStreamObserverAdapter.onCompleted(ClientCalls.java:375)
at com.justai.aimybox.speechkit.yandex.cloud.YandexSpeechToText$startRecognition$1$2.invoke(YandexSpeechToText.kt:60)
at com.justai.aimybox.speechkit.yandex.cloud.YandexSpeechToText$startRecognition$1$2.invoke(YandexSpeechToText.kt:17)
at kotlinx.coroutines.channels.AbstractSendChannel.invokeOnCloseHandler(AbstractChannel.kt:268)
at kotlinx.coroutines.channels.AbstractSendChannel.close(AbstractChannel.kt:258)
at kotlinx.coroutines.channels.SendChannel$DefaultImpls.close$default(Channel.kt:102)
at kotlinx.coroutines.channels.ProducerCoroutine.onCompleted(Produce.kt:137)
at kotlinx.coroutines.channels.ProducerCoroutine.onCompleted(Produce.kt:130)
at kotlinx.coroutines.AbstractCoroutine.onCompletionInternal(AbstractCoroutine.kt:104)
at kotlinx.coroutines.JobSupport.finalizeFinishingState(JobSupport.kt:235)
at kotlinx.coroutines.JobSupport.continueCompleting(JobSupport.kt:932)
at kotlinx.coroutines.JobSupport.access$continueCompleting(JobSupport.kt:28)
at kotlinx.coroutines.JobSupport$ChildCompletion.invoke(JobSupport.kt:1152)
at kotlinx.coroutines.JobSupport.notifyCompletion(JobSupport.kt:1529)
... 12 more

Unrecognized voice running on Android 11

I got the latest version.

The STT I use is
implementation("com.just-ai.aimybox:google-cloud-speechkit:$aimyboxVersion")

When I install the app into Android 9, I can recognize voice and work normally.

However, when I installed the app on Android 11, I couldn't recognize the voice.
From the perspective of logcat, it was this error:
com.google.api.gax.rpc.UnauthenticatedException: io.grpc.StatusRuntimeException: UNAUTHENTICATED: Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

Why did this happen?
There is no problem on Android 9.

Google TTS engine on android can be configured a little bit

On android in Google TTS settings General management > Language and input > Text-to-speech in the voice data I can choose from multiple voices, but it seems that always the first voice will be matched when using the google-plaform-speechkit. Could there be a parameter to configure which voice to choose.
In the android.speech.tts.Voice class there are multiple variables that I think might have something to do with choosing the voices like:
private final String mName;, private final Set<String> mFeatures or might be the right combination of private final int mQuality and private final int mLatency and using them in synthesizer.voices.filter {...}.
I'm new to Kotlin and haven't got that deep in android, so I wasn't able to compile the sample assistant app with a modified sdk. I think it's an easy thing to do but I hate my lack of knowledge.

Не останавливается воспроизведение музыки при входе в голосового помощника

Если при входе в голосового помощника включена музыка (в наушниках или динамиках) то музыка не прерывается

Шаги воспроизведения:

Включить музыку на устройстве
Зайти в голосового помощника (Альфа мобайл)
ОР: музыка прерывается, слышно только ГП
ФР: Музыка становится громче, слышно музыку и ГП

Версия SDK 0.16.9
Android 11, 10
Samsung GalaxyS20, Pixel XL

App gets crashed frequently

I have added this library in my project. But after that my app crashes frequently. and I do not know what is causing this crash. I am attaching my logcat here. Please let me know a solution for this as early as possible.

Here is the logact stacktrace of an exception

Screenshot from 2020-09-30 14-33-14

Calculate rmsDb in AudioRecorder

AudioRecorder class is used in some speech to text modules. It would be great to have a single function that calculates a speech volume level because AimyboxButton UI component can visualise a sound level changes.

It's good starting point about RMSdb here.

Time incorrect

The app is report 1 hour less than correct, here in the UK. I've tried rebuilding my app from scratch to double check that it's not an error I've made but. No. The website reports fine but the app doesn't.

I attach a screenshot to show the issue.

Screenshot_20210703-102832_Ora

Передавать параметр - x-data-logging-enabled в Yandex.Speechkit

При запросе к Yandex SpeechKit Яндекс.Облака для диагностики ошибок необходимо передавать разрешение сохранять данные, переданные пользователем в запросе. В соответствии с документацией Яндекса https://cloud.yandex.ru/docs/speechkit/concepts/support-headers данное разрешение передается в параметре - x-data-logging-enabled.

На текущий момент при использовании SDK AimyBox для Android нет возможности передать данный параметр в запросе к Yandex SpeechKit.

Необходимо в объекты com.justai.aimybox.speechkit.yandex.cloud.YandexTextToSpeech и com.justai.aimybox.speechkit.yandex.cloud.YandexSpeechToText добавить возможность передачи параметра x-data-logging-enabled.

Kaldi Speechkit Dependency

I cannot build a project using aimybox because I get the following gradle build error:
"Could not GET 'https://dl.bintray.com/alphacep/vosk/com/alphacep/vosk-android/0.3.17/vosk-android-0.3.17.pom'. Received status code 403 from server: Forbidden
Disable Gradle 'offline mode' and sync project"
Gradle offline mode is already disabled so that cannot be the problem. You use the the dependency mentioned above in the Kaldi Speechkit of your SDK. Please update the Vosk dependency to a newer version. Vosk has newer versions of the library hosted on https://alphacephei.com/maven.

Handle exceptions on Yandex SpeechKit

com.justai.aimybox.assistant E/Aimybox(Yandex Speechkit): [OkHttp https://iam.api.cloud.yandex.net/iam/v1/tokens] Failed to receive OAuth token if Internet connection is not available.

Not possible to import this project as a module

Hello

i can not import this project as a module for Android Jave application. On current step i have a error:

e: /----/AndroidProjects/java_app/core/build.gradle.kts:6:5: Unresolved reference: `aimybox-publish`

I tried to copy files from buildSrc into my root project (no modules was before). But this does not help me to solve this problem.

Крэш при вызове Aimybox.abandonRequestAudioFocus

Логика, связанная с этим методом нужна нам для прерывания посторонних звуков при вызове голосового помощника.
Однако, стреляет крэш вот с таким стектрейсом

Fatal Exception: java.lang.IllegalArgumentException
illegal null AudioFocusRequest

android.media.AudioManager.abandonAudioFocusRequest (AudioManager.java:2919)
com.justai.aimybox.Aimybox.abandonRequestAudioFocus (Aimybox.java:317)
com.justai.aimybox.Aimybox.setState (Aimybox.java:131)
com.justai.aimybox.Aimybox.access$setState$p (Aimybox.java:40)
com.justai.aimybox.Aimybox$standby$1.invokeSuspend (Aimybox.java:188)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (BaseContinuationImpl.java:33)
kotlinx.coroutines.DispatchedTask.run (DispatchedTask.java:106)
kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely (CoroutineScheduler.java:571)
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask (CoroutineScheduler.java:750)
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.java:678)
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.java:665)

Необходимо выяснить причины эксепшна и пофиксить его, сохраняя при этом логику прерывания звука

Чаще всего воспроизводится на устройствах:

  • Xiaomi (40%)
  • Huawei (25%)
  • Samsung (32%)

На версиях ОС:

  • Android 8 (9%)
  • Android 9 (13%)
  • Android 10 (49%)
  • Android 11 (29%)

Необходимо доработать SSL-пиннинг для подключения к хосту яндекса

Речь идет о хосте tts.api.cloud.yandex.net

В кодовой базе реализовано пробрасывание PinningConfig (для последующего SSL-пиннинга) в конструктор Aimybox. Пробрасывание извне со стороны пользователя библиотеки является оверхедом и лишней логикой, так как все данные для создания PinningConfig лежат в открытом доступе.

Необходимо избавиться от пробрасывания SSL-конфига в конструктор Aimybox и конфигурировать его на стороне SDK. Данные о публичном ключе сертификата Яндекса (захэшированного SHA256) можно взять здесь https://www.ssllabs.com/ssltest/

Также нужно предусмотреть кейс, когда сертификат протухает. В таком случае сервис может стать недоступен, поэтому нужна какая-то обработка ошибки пиннинга, при возникновении которой, подключение будет происходить без пиннинга до обновления сертификата.

App getting crashed frequently

Hello, We are using Aimybox from a while, But suddenly we start facing the issue of app crash very frequently with below error. Please help us as soon as possible

java.io.IOException: Read 0 bytes from recorder at com.justai.aimybox.recorder.AudioRecorder$startRecordingBytes$1.invokeSuspend(AudioRecorder.kt:100) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:764)

How to add a custom TTS and play voice?

In some situation I need to play a exception voice to inform user , I tried to add those code like the following figure
image
but I have no idea create a second-speech.

Anyway,I want to add a TTS ,I describe the function
1.I add a speak and it work well,but I add speak twice,it didn't speak.In logs,I saw "[DefaultDispatcher-worker-3] Speech sequence synthesis completed",but no voice speak.
2.When I restart app,the speak can work again.

What should I do ?
Hope your reply,thx

Add ability to initiate conversation from bot

Currently, the SDK does not allow the assistant to pre-empt the user with a question. It would be nice to have that ability to initiate the conversation from the assistant side rather than always being reactive to the user.

AimyBox Kaldi speech kit error

implementation("com.alphacephei:vosk-android:0.3.23")

* What went wrong:
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not find com.alphacephei:vosk-android:0.3.23.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
       - https://repo.maven.apache.org/maven2/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
       - file:/home/thefunnyintrovert/.m2/repository/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
       - https://jitpack.io/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
     Required by:
         project :app > com.just-ai.aimybox:kaldi-speechkit:0.16.9

Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.alphacephei:vosk-android:0.3.23.

Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.alphacephei:vosk-android:0.3.23.
Searched in the following locations:
  - https://dl.google.com/dl/android/maven2/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
  - https://repo.maven.apache.org/maven2/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
  - file:/home/thefunnyintrovert/.m2/repository/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
  - https://jitpack.io/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
Required by:
    project :app > com.just-ai.aimybox:kaldi-speechkit:0.16.9

==============================================================================
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.alphacephei:vosk-android:0.3.23.
Searched in the following locations:
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find com.alphacephei:vosk-android:0.3.23.

  - https://dl.google.com/dl/android/maven2/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
  - https://repo.maven.apache.org/maven2/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
  - file:/home/thefunnyintrovert/.m2/repository/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
  - https://jitpack.io/com/alphacephei/vosk-android/0.3.23/vosk-android-0.3.23.pom
Required by:
    project :app > com.just-ai.aimybox:kaldi-speechkit:0.16.9

==============================================================================

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
19 actionable tasks: 7 executed, 12 up-to-date

more information: https://jitpack.io/#alphacep/vosk-api

I believe this is why the error is coming as vosk does not have 0.3.23 on jitpack, please either change it to a stable 0.3.32 or give me a solution to build.

Падает через пару фраз

Создал согласно документации

                             val config = YandexSpeechToText.Config(
                                enablePartialResults = false,
                                enableLoggingData = true
                            )
                            val iAmTokenGenerator =
                                IAmTokenGenerator("OAuth")

                            val yandexSpeechKitRecognizer = YandexSpeechToText(
                                iAmTokenGenerator,
                                "folderId",
                                Language.EN,
                                config
                            )

                            if (ActivityCompat.checkSelfPermission(
                                    this,
                                    Manifest.permission.RECORD_AUDIO
                                ) != PackageManager.PERMISSION_GRANTED
                            ) {
                                checkPermissions()
                            } else {
                                val r = yandexSpeechKitRecognizer.startRecognition()
                                GlobalScope.launch {
                                    r.consumeEach { it ->
                                        Log.i(TAG, "$it")
                                    }
                                }
                            }

После отправки пары сообщений падает

java.lang.IllegalStateException: Flow exception transparency is violated:
Previous 'emit' call has thrown exception java.lang.IllegalStateException: Flow exception transparency is violated:
Previous 'emit' call has thrown exception java.lang.IllegalStateException: Flow exception transparency is violated:
Previous 'emit' call has thrown exception java.lang.IllegalStateException: Flow exception transparency is violated:
Previous 'emit' call has thrown exception kotlin.UninitializedPropertyAccessException: lateinit property eventChannel has not been initialized, but then emission attempt of value '[B@15100dc' has been detected.
Emissions from 'catch' blocks are prohibited in order to avoid unspecified behaviour, 'Flow.catch' operator can be used instead.
For a more detailed explanation, please refer to Flow documentation., but then emission attempt of value '[B@3e895e5' has been detected.

Помогите, пожалуйста

Can not import as a module

I am trying to import a project as a module in my project, but when I try to do this I am getting below error:

failed core/build.gradle.kts Unresolved reference: justai Unresolved reference: justai Unresolved reference: configureProject Unresolved reference: createMavenPublication Unresolved reference: isLibrary Unresolved reference: publishToBintray Unresolved reference: configureAndroid Unresolved reference: Android Unresolved reference: Kotlin Unresolved reference: Kotlin Unresolved reference: Version Unresolved reference: Version Unresolved reference: Version Unresolved reference: Version Script compilation errors:

And here is the screenshot
Screenshot from 2020-09-17 10-43-26

App not installed as package appears to be invalid

Dear JustAI team,

I've downloaded the code, build my voice assistant and tried to build the apk.

After I've finally installed the APK on my phone, this message appeared: App not installed as package appears to be invalid

Can you help me?

Greetings,
Linkspreed Devs

Inconvenient Reply constructors

Now every Reply constructor handles only a JsonObject as an argument. Thus there are some problems if we implement new DialogApi converting replies from another format - we have to create a JsonObject instance.

Arabic Speech to Text

How can I modify the app to have Arabic Speech to Text ? What should I put for the language ? Do I need to modify the native Local.java file ?

Голосовой помощник Alf воспринимает свою собственную речь и общается с самим собой

Распишу 2 кейса на андройде. Я раздавал интернет через другой девайс и там переключал скорости сети.

Кейс №1

Шаги:

  1. Зайти в голосового помощника
  2. Понизить скорость до 2G
  3. Выбрать любой навык на экране
  4. Ждем когда на экране появится ответ
  5. Сворачиваем приложение и снова разворачиваем(Если этого не сделать, то баг не воспроизведется)
  6. Повышаем скорость до 3G
  7. Ждем когда появится запоздалый голос. Как появится голос, то жмем на иконку для включения микрофона. Можно увидеть как альф распознает свой голос.
    Видео кейса: https://drive.google.com/file/d/1GdrgTjvLX_9DsBQ6P6xZvBkGZQHUQZno/view

Кейс №2

Шаги:

  1. Зайти в голосового помощника
  2. Понизить скорость до 2g
  3. Выбрать любой навык на экране
  4. Ждем когда на экране появится ответ
  5. Выходим из голосового помощника в главный экран альфа-мобайла
  6. Повышаем скорость до 3g
  7. Снова заходим на экран голосового помощника и ожидаем запоздалый голос.
    Так как при открытии голосового помощника микрофон автоматически включается, то альф распознает свои голос и будет общение с самим собой.
    Видео кейса: https://drive.google.com/file/d/1MR13dEsB6wlbeSvNwIRVQuDrJehQ0qpV/view

Не работает Kaldi при сборке на локальной машине.

В Класс AiMyBox потребовалось добавить один "if". Форкнул репозиторий, скачал на локальную машину, внес изменение и собрал библиотеку командой ./gradlew clean assembleDebug assembleRelease
На выходе получил arr. Взял их, положил в папку приложения и подключил вместо загрузки с maven.

Все запускается, но в логах нет инициализации Kaldi, а все остальное инитится. Меняю подключение библиотек на maven и все работает.

Может что-то не так делаю?

Make Async Response Feature Available

I am trying to make a plugin for tasker using this SDK, the scenario in my mind is like this:

  • User initiates conversation
  • Aimybox plugin triggers an event on tasker
  • Tasker does some background work and sends back the response
  • Aimybox assistant renders it in the UI and speaks response

Note that the process here is async and there is no guarantee that tasker will send any response back for every sentence sent out.
The current implementation of the SDK only allows the request-response to be a sequential process

Also, allowing async responses will allow tasker to start the assistant from the background while posing a question to the user.
This behavior of the assistant will allow for proactive conversation from the assistant's side v/s always being reactive to the user's input.

Google clous speechkit is not working properly

I am using the latest version of core AimyBox SDK and using Google cloud speechkit for the Text to Speech and for Speech to Text as well. But the problem is, it is not wokring continously and it stopped recognizing the speech after some random amount of time. And I am not getting any error in the logcat. So I am not able to find the root of an issue.

Here I am posting the code that I have written

` val credentials = GoogleCloudCredentials.fromAsset(applicationContext, "credentials.json")

    val textToSpeech = GoogleCloudTextToSpeech(applicationContext, credentials, Locale.ENGLISH)
    val speechToText = GoogleCloudSpeechToText(credentials, Locale.ENGLISH)

    //val dialogApi = AimyboxDialogApi("your Aimybox project API key", unitId)
    val unitId = UUID.randomUUID().toString()
    val dialogApi = DummyDialogApi()
    aimybox = Aimybox(Config.create(speechToText, textToSpeech, dialogApi))`

Help me to find the solution as it is urgent

Добавить событие для отслеживания метрик Yandex SpeechKit

Для отслеживания метрик работы голосового помощника необходимо получать информацию о времени обработки запроса TextToSpeech в Yandex SpeechKit Яндекс.Облака. На текущий момент при использовании SDK AimyBox для Android нет возможности отслеживать данную метрику, есть возможность только получить время запроса с учетом времени, которое еще требуется на произнесение текста.
Необходимо добавить возможность передачи времени ответа или факт получения успешного ответа от Yandex SpeechKit

Unable to run the app on latest Android SDK and Android Studio Artic Fox

Unable to add the library and keep getting below error

Duplicate class com.justai.aimybox.Aimybox found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$NextAction found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$NextAction$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$State found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$WhenMappings found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$cancelCurrentTask$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$cancelPendingRequest$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$cancelRecognition$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$mute$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$sendRequest$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$speak$$inlined$apply$lambda$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$speak$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$standby$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$startRecognition$$inlined$apply$lambda$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$startRecognition$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$stopRecognition$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$stopSpeaking$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$toggleRecognition$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$unmute$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$updateConfiguration$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.Aimybox$voiceTrigger$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.BuildConfig found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$Event found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$Event$RequestCancelled found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$Event$RequestSent found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$Event$ResponseReceived found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$handle$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$handle$1$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$handleDefault$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$send$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$send$3 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.DialogApi$send$3$response$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxApi found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxDialogApi found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxDialogApi$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxDialogApi$send$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxRequest found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxResponse found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxRetrofit found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.AimyboxUtils found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.api.aimybox.GsonKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.AimyboxComponent found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.AimyboxException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.ApiException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.ApiRequestTimeoutException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.Config found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.Config$Builder found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.Config$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.Config$Companion$create$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.Config$RecognitionBehavior found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.CustomSkill found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.CustomSkill$DefaultImpls found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.RecognitionTimeoutException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.SpeechToTextException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.TextToSpeechException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.core.VoiceTriggerException found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.AimyboxRxKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.AnyKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.ContextKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.CoroutineContextKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.CoroutineContextKt$cancelChildrenAndJoin$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.RetryKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.extensions.RetryKt$retry$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.logging.Logger found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.logging.Logger$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.logging.Logger$Companion$DEFAULT_FORMAT$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.logging.Logger$assert$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$Source found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$Source$Raw found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$Source$Url found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$State found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$State$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$State$PlaybackState found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$launchPlayer$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$launchPlayer$1$observeStateJob$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$playSuspendable$$inlined$suspendCancellableCoroutine$lambda$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayer$playSuspendable$2$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioPlayerKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer$launchPlayer$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer$launchPlayer$1$1$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer$launchPlayer$1$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer$launchPlayer$1$invokeSuspend$$inlined$suspendCancellableCoroutine$lambda$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer$play$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.media.AudioSynthesizer$play$4 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.AudioSpeech found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.AudioSpeech$Bytes found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.AudioSpeech$Raw found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.AudioSpeech$Uri found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.JsonResponse found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.Request found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.Response found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.Speech found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.TextSpeech found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.AudioReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.AudioReplyKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.ButtonsReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.ImageReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.Reply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.ReplyButton found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.TextReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.TextReplyKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.AimyboxAudioReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.AimyboxButtonsReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.AimyboxImageReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.AimyboxReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.AimyboxReplyButton found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.AimyboxTextReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.model.reply.aimybox.UnknownAimyboxReply found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecordDispatcherKt found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecordDispatcherKt$dispatcher$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecordDispatcherKt$dispatcher$1$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecorder found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecorder$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecorder$startRecordingBytes$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.recorder.AudioRecorder$startRecordingBytes$1$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SampleRate found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$AudioBufferReceived found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$EmptyRecognitionResult found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$RecognitionCancelled found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$RecognitionPartialResult found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$RecognitionResult found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$RecognitionStarted found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$SoundVolumeRmsChanged found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$SpeechEndDetected found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Event$SpeechStartDetected found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Result found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Result$Exception found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Result$Final found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToText$Result$Partial found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$cancelRunningJob$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$recognizeSpeech$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$recognizeSpeech$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$recognizeSpeech$3 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$recognizeSpeech$3$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$setDelegate$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.speechtotext.SpeechToTextComponent$startTimeout$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.BaseTextToSpeech found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.BaseTextToSpeech$extractSSML$$inlined$map$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.BaseTextToSpeech$extractSSML$$inlined$map$1$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.BaseTextToSpeech$synthesize$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.BaseTextToSpeech$synthesize$2$invokeSuspend$$inlined$collect$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.BaseTextToSpeech$synthesize$2$invokeSuspend$$inlined$collect$1$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.SSMLSpeechParser found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.SSMLSpeechParser$Companion found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.SSMLSpeechParser$extractSSML$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event$SpeechDataReceived found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event$SpeechEnded found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event$SpeechSequenceCompleted found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event$SpeechSequenceStarted found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event$SpeechSkipped found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeech$Event$SpeechStarted found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeechComponent found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeechComponent$cancelRunningJob$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeechComponent$setDelegate$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeechComponent$speak$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeechComponent$speak$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.texttospeech.TextToSpeechComponent$speak$3 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTrigger found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTrigger$DefaultImpls found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTrigger$Event found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTrigger$Event$Started found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTrigger$Event$Stopped found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTrigger$Event$Triggered found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTriggerComponent found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTriggerComponent$setDelegate$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTriggerComponent$start$$inlined$let$lambda$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTriggerComponent$start$$inlined$let$lambda$2 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTriggerComponent$start$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)
Duplicate class com.justai.aimybox.voicetrigger.VoiceTriggerComponent$stop$1 found in modules jetified-core-0.15.0-runtime (com.justai.aimybox:core:0.15.0) and jetified-core-0.16.0-runtime (com.just-ai.aimybox:core:0.16.0)

Go to the documentation to learn how to Fix dependency resolution errors.

I am using below version of the library

val aimyboxVersion = "0.16.8"
val componentsVersion = "0.1.10"

implementation("com.just-ai.aimybox:core:${aimyboxVersion}")
implementation("com.just-ai.aimybox:google-platform-speechkit:${aimyboxVersion}")
implementation("com.just-ai.aimybox:rasa-api:${aimyboxVersion}")
implementation("com.justai.aimybox:components:${componentsVersion}")

How do I open a pmdl file for Snowboy Voice Trigger ?

Hi, first of all many thanks for you awasome job. I'm trying to integrate voice trigger in my app but every time i get this error when I try to open my pmdl file:

Aimybox(SnowboySpeechkit): [main] Failed to copy robot.pmdl from assets to SD
java.io.FileNotFoundException: robot.pmdl

I've tried a lot of things such as: copy my model file in different directories, changing the path in the code... but nothing works. This is the code of my function:

@SuppressLint("MissingPermission")
fun createSnowboy(context: Context): SnowboyVoiceTrigger {
// If you provide snowboy assets with your APK

    val assets = SnowboyAssets.fromApkAssets(context,"robot.pmdl", "src/main/res/raw")

    return SnowboyVoiceTrigger(context,assets)

}

Add "payload" to ReplyButton

        if (json.has("buttons"))
            replies.add(ButtonsReply(
                json["buttons"].asJsonArray.map { it.asJsonObject }.map { btn ->
                    ReplyButton(btn["title"].asString, null)
                }
            ))

templates:
utter_greet:

  • text: "Hey! How are you?"
    buttons:
    • title: "great"
      payload: "great"
    • title: "super sad"
      payload: "super sad"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.