uni-app app在安卓端使用百度语音识别时遇到错误 "code": 4004, App name unknown

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app app在安卓端使用百度语音识别时遇到错误 “code”: 4004, App name unknown

错误提示信息

{
    "code": 4004,  
    "message": "App name unknown[(-3004)asr authentication failed[info:-3004]]"
}

解决方法:

  1. 我们用的是个人的百度语音免费权限,权限过期了,重新换账号申请了一个并申请了免费的额度
  2. 在manifest配置最新的账号
  3. 真机调试时,把原来手机上的删除,重新制作自定义基座,基座完成后,重新运行到基座,即可实现语音功能!!!!!

图像


1 回复

针对您提到的uni-app应用在安卓端使用百度语音识别时遇到的错误码“4004,App name unknown”,这通常意味着您的应用未正确配置或未向百度语音识别服务注册有效的应用名称。为了解决这个问题,我们需要确保应用的配置正确无误,并且已经正确获取和使用了百度语音识别服务的API Key和Secret Key。

以下是一个基本的代码示例和配置步骤,用于在uni-app中集成百度语音识别服务,请注意,这里假设您已经拥有百度AI平台的账号,并创建了语音识别应用,获取了API Key和Secret Key。

步骤 1: 获取Access Token

首先,您需要一个有效的Access Token来访问百度语音识别API。您可以通过以下代码在服务器端或使用云函数获取:

const axios = require('axios');

async function getAccessToken(apiKey, secretKey) {
    const response = await axios.post('https://aip.baidubce.com/oauth/2.0/token', `grant_type=client_credentials&client_id=${apiKey}&client_secret=${secretKey}`);
    return response.data.access_token;
}

步骤 2: 配置uni-app项目

在您的uni-app项目中,确保已经安装了必要的依赖(如axios用于HTTP请求),并在需要调用语音识别的地方,使用获取到的Access Token。

步骤 3: 调用语音识别API

以下是一个简化的调用百度语音识别API的示例:

// 假设已经获取到accessToken
async function recognizeSpeech(accessToken, audioData) {
    const url = `https://aip.baidubce.com/rest/2.0/asr/v1/audio`;
    const headers = {
        'Content-Type': 'application/x-www-form-urlencoded'
    };
    const params = new URLSearchParams();
    params.append('lang', 'zh');
    params.append('format', 'wav');
    params.append('rate', '16000');

    const formData = new FormData();
    formData.append('access_token', accessToken);
    formData.append('audio', audioData);

    const response = await axios.post(url, formData, { headers });
    return response.data;
}

注意事项

  1. 应用名称配置:确保在百度AI平台创建应用时填写了正确的应用名称,并且该名称与您在代码中或请求中使用的名称一致。
  2. 权限和网络:检查安卓应用的网络权限配置,确保应用有权限访问网络。
  3. 错误处理:增加错误处理逻辑,对于不同的错误码进行相应处理。

通过上述步骤,您应该能够解决“App name unknown”的问题。如果问题依旧存在,请检查百度AI平台应用配置是否有误,或联系百度AI技术支持获取进一步帮助。

回到顶部