在 Android Studio 中,mavenCentral PocketSphinx 库无法工作

问题描述 投票:0回答:1

我在 Android Studio 中为我的 Android 版本 13 手机创建了一个类似 AI 辅助的应用程序,但在导入“PocketSphinx”库以将其用于离线自定义唤醒词检测(在后台工作)以及是否说出自定义词时遇到问题这样我的应用程序就会打开。

我使用 Kotlin 语言、“SDK 33”和模板“Empty Views Activity”(我不想使用 Porcupine 库)。

我尝试在 Google 和 Stack Overflow 上搜索,以检查如何自己解决此问题,但找不到已更新且适用于 2023 年和 Android 版本 13 的答案。

我尝试了以下方法:

  1. 文件项目结构依赖项所有依赖项 → “+”按钮 → 库依赖项PocketSphinx

    它说:“没有什么可显示的”,所以即使我在 settings.grade.kts 根文件中有“google”和“mavenCentral”存储库,它也找不到该库

  2. Gradle 脚本→build.gradle.kts(模块:app)→依赖项→实现(“edu.cmu.pocketsphinx:pocketsphinx-android:5prealpha”)

  3. 我还尝试使用“Vosk”Gradle Scripts→build.gradle.kts(模块:app)→

    dependencies
    →实现(“ai.kitt.android:vosk-android:0.6.3”)

  4. 也尝试重启Android Studio,还是不行。

  5. 也尝试重新安装Android Studio,但还是不行。

  6. 当然,每次添加依赖项时我都会同步,并且每次使用BuildClean Project 时都会同步,并且如果我添加了我尝试过的导入(您可以在底部看到),则无法重建项目。但是,当我只添加依赖项并且不使用任何导入时,我能够使用rebuild

这些是我的项目依赖项:

dependencies {
    implementation("androidx.core:core-ktx:1.7.0") // Not Updated version
    implementation("com.google.android.material:material:1.5.0") // Not Updated version
    implementation("androidx.appcompat:appcompat:1.6.1") // Updated version
    implementation("androidx.constraintlayout:constraintlayout:2.1.4") // Updated version
    implementation("androidx.media:media:1.6.0") // Updated version
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") // Updated version
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
    implementation("androidx.compose.ui:ui-text-android:1.5.4") // Updated version
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.5") // Updated version
    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") // Updated version
}

我知道前 2 个依赖项不是更新版本,这是因为如果我将其中一个或两个依赖项切换到更新版本,我的程序根本无法运行并且会出现错误,所以我更喜欢保留这些依赖项版本,以便我的项目能够运行。

这些是我的项目 Android 设置:

android {
    namespace = "com.example.jarvis"
    compileSdk = 33

    defaultConfig {
        applicationId = "com.example.jarvis"
        minSdk = 33
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

这些是我尝试过的“PocketSphinx”和“Vosk”的所有导入(以 ai、edu 开头的那些给了我错误,它们没有导入。“未解析的参考:ai”,“未解析的参考:edu” ):

import android.Manifest import android.content.pm.PackageManager import android.os.Bundle import android.util.Log import android.util.Log import ai.kitt.android.vosk.VoskModel import ai.kitt.android.vosk.VoskRecognizer import ai.kitt.android.vosk.VoskResult import ai.kitt.android.vosk.VoskRecognizer.Listener import edu.cmu.sphinx.api.Configuration import edu.cmu.sphinx.api.LiveSpeechRecognizer import edu.cmu.sphinx.api.RecognitionResult import edu.cmu.sphinx.api.SpeechRecognizer

如何解决这个问题并使用这个库,以及我需要在 Kotlin 代码中使用哪些导入?

android kotlin dependency-management pocketsphinx
1个回答
0
投票

似乎依赖关系没有正确添加。您可以直接在构建文件中添加依赖项定义,而不是使用 AndroidStudio 设置来添加依赖项。

按照this说明,先在

mavenCenter()
中添加
settings.gradle.kts

// ...
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

它是默认添加的,因此可能在新项目中应该已经配置了。

下一步编辑文件

app/src/build.gradle.kts
并在依赖项中添加新行

plugins {
  // ...
}

android {
  // ...
}

dependencies {
  // ...
  implementation("com.alphacephei:vosk-android:0.3.32")
}

还有有用的示例应用程序源代码https://github.com/alphacep/vosk-android-demo

© www.soinside.com 2019 - 2024. All rights reserved.