Browse Source

fix: cc

sibichiEight
高志龙 5 months ago
parent
commit
08c0e3171e
  1. BIN
      app/libs/arm64-v8a/libaispeechaudio.so
  2. BIN
      app/libs/arm64-v8a/libduiitn.so
  3. BIN
      app/libs/arm64-v8a/libspeex.so
  4. BIN
      app/libs/arm64-v8a/libsspe.so
  5. 0
      app/src/main/assets/sspe_v1.bin
  6. BIN
      app/src/main/assets/vad_aihome_v0.12c_noDither.bin
  7. BIN
      app/src/main/assets/wakeup_aifar_comm_h7_20210127.bin
  8. 5
      app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java
  9. 213
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  10. 31
      app/src/main/java/qianmu/container/app/MyApplication.java

BIN
app/libs/arm64-v8a/libaispeechaudio.so

Binary file not shown.

BIN
app/libs/arm64-v8a/libduiitn.so

Binary file not shown.

BIN
app/libs/arm64-v8a/libspeex.so

Binary file not shown.

BIN
app/libs/arm64-v8a/libsspe.so

Binary file not shown.

0
app/src/main/assets/sspe_aec-bf-bss-wkp_ch10-mic8-ref2_outgain4_v2.0.0.165_20251127_v1.bin → app/src/main/assets/sspe_v1.bin

BIN
app/src/main/assets/vad_aihome_v0.12c_noDither.bin

Binary file not shown.

BIN
app/src/main/assets/wakeup_aifar_comm_h7_20210127.bin

Binary file not shown.

5
app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java

@ -47,6 +47,7 @@ import qianmu.container.util.FileUtil;
import qianmu.container.util.GsonUtil;
import qianmu.container.util.KeyboardUtil;
import qianmu.container.util.LoggerUtil;
import qianmu.container.util.RootCmdUtil;
import qianmu.container.util.SignWayUtil;
import qianmu.container.util.StringUtil;
import qianmu.container.util.TimeUtil;
@ -252,6 +253,10 @@ public class UpdateFileActivity extends BaseActivity {
//新版欣威视通初始化
SdkApi.newInstance(this);
}
//获取音频权限
LoggerUtil.e("RootCmdUtil: ", RootCmdUtil.execRootCmd("mount -o rw,remount /system"));
LoggerUtil.e("RootCmdUtil: ", RootCmdUtil.execRootCmd("setenforce 0"));
LoggerUtil.e("RootCmdUtil: ", RootCmdUtil.execRootCmd("chmod -R 777 /dev/snd"));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if(!Environment.isExternalStorageManager()){

213
app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java

@ -86,8 +86,8 @@ public class WebViewActivity extends BaseActivity {
static final int TYPE_GO_SAVESCREEN = 300;//导视通知跳转屏保
static final int TYPE_HINT_PASSWORD = 3;//隐藏密码输入框
static final int TYPE_START_SERVER = 4;//重新启动web服务
static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址 http://192.168.1.218:5173/
//static String HtmlUrl = "http://192.168.0.109:5173/";
//static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址 http://192.168.1.218:5173/
static String HtmlUrl = "http://192.168.1.196:5173/"; //"http://192.168.0.109:5173/";
int time = 0;
private VideoView currentVideo;
private SoundPool soundPool;
@ -936,6 +936,7 @@ public class WebViewActivity extends BaseActivity {
AILocalSignalAndWakeupConfig config = new AILocalSignalAndWakeupConfig();
config.setSspeResource("sspe_aec-bf-bss-wkp_ch10-mic8-ref2_outgain4_v2.0.0.165_20251127_v1.bin");//设置SSPE资源
config.setEchoChannelNum(2);
mLocalEngine = AILocalSignalAndWakeupEngine.createInstance();
mLocalEngine.init(config, new SSPEListener());
@ -944,20 +945,22 @@ public class WebViewActivity extends BaseActivity {
asrconfig.setLocalVadEnable(true);
asrconfig.setVadResource("vad_aihome_v0.12c_noDither.bin");
mEngine = AICloudASREngine.createInstance();
mEngine.init(asrconfig, new AIASRListenerImpl());
aiCloudASRIntent = new AICloudASRIntent();
aiCloudASRIntent.setEnablePunctuation(true);
aiCloudASRIntent.setRealback(true);//打开实时反馈功能
aiCloudASRIntent.setCloudVadEnable(false);
aiCloudASRIntent.setAudioType(AICloudASRIntent.PCM_ENCODE_TYPE.valueOf("WAV"));
aiCloudASRIntent.setResourceType(Constant.asrModel);
aiCloudASRIntent.setEnableNumberConvert(true);//设置启用识别结果汉字数字转阿拉伯数字功能
aiCloudASRIntent.setWaitingTimeout(30000); //设置等待识别结果超时时长,默认5000ms
aiCloudASRIntent.setNoSpeechTimeOut(6000);
aiCloudASRIntent.setPauseTime(2000);
//aiCloudASRIntent.setServer("wss://asr.dui.ai/runtime/v2/recognize");
mEngine.init(asrconfig, new AIASRListenerImpl());
aiCloudASRIntent.setWaitingTimeout(10000); //设置等待识别结果超时时长,默认5000ms
aiCloudASRIntent.setNoSpeechTimeOut(5000);
aiCloudASRIntent.setPauseTime(3000);
//aiCloudASRIntent.setUseCustomFeed(false); // 设置是否使用外部喂音频
}
initRecorder();
//initRecorder(); //暂不开
}
private void initRecorder() {
@ -984,104 +987,6 @@ public class WebViewActivity extends BaseActivity {
}
}
private class SSPEListener implements AILocalSignalAndWakeupListener {
@Override
public void onInit(int resultCode) {
if (resultCode == AIConstant.OPT_SUCCESS) {
LoggerUtil.e("setSspeResource:","sspe init success");
} else {
LoggerUtil.e("setSspeResource:","sspe init fail: " + resultCode);
}
}
@Override
public void onError(AIError aiError) {
}
@Override
public void onWakeup(double v, String s) {
}
@Override
public void onWakeup(String s) {
}
@Override
public void onNearInformation(String s) {
}
@Override
public void onDoaResult(int i) {
}
@Override
public void onReadyForSpeech() {
}
@Override
public void onRawDataReceived(byte[] bytes, int i) {
}
@Override
public void onResultDataReceived(byte[] bytes, int i, int i1) {
if (mEngine != null) {
mEngine.feedData(bytes, i);
}
}
@Override
public void onVprintCutDataReceived(int i, byte[] bytes, int i1) {
}
@Override
public void onAgcDataReceived(byte[] bytes, int i) {
}
@Override
public void onInputDataReceived(byte[] bytes, int i) {
}
@Override
public void onOutputDataReceived(byte[] bytes, int i) {
}
@Override
public void onEchoDataReceived(byte[] bytes, int i) {
}
@Override
public void onSevcDoaResult(int i) {
}
@Override
public void onSevcNoiseResult(String s) {
}
@Override
public void onMultibfDataReceived(byte[] bytes, int i, int i1) {
}
@Override
public void onEchoVoipDataReceived(byte[] bytes, int i) {
}
}
private class AIASRListenerImpl implements AIASRListener {
public void onError(AIError error) {
@ -1173,6 +1078,102 @@ public class WebViewActivity extends BaseActivity {
}
private class SSPEListener implements AILocalSignalAndWakeupListener {
@Override
public void onInit(int resultCode) {
if (resultCode == AIConstant.OPT_SUCCESS) {
LoggerUtil.d("ASRInit: ","sspe init success");
} else {
LoggerUtil.e("ASRInit: ","sspe init fail: " + resultCode);
}
}
@Override
public void onError(AIError error) {
//74405 唤醒超时
LoggerUtil.e("ASRInit: ","sspe onError: " + error);
}
@Override
public void onWakeup(double confidence, String wakeupword) {
// LoggerUtil.e("ASRInit: ","onWakeup: " + wakeupword + " " + confidence);
}
@Override
public void onWakeup(String s) {
}
@Override
public void onNearInformation(String s) {
}
@Override
public void onDoaResult(int doa) {
//LoggerUtil.e("ASRInit: ","doa: " + doa);
}
@Override
public void onReadyForSpeech() {
}
@Override
public void onRawDataReceived(byte[] bytes, int size) {
}
@Override
public void onResultDataReceived(byte[] bytes, int size, int wakeupType) {
if (mEngine != null) {
mEngine.feedData(bytes, size);
}
}
@Override
public void onVprintCutDataReceived(int i, byte[] bytes, int i1) {
}
@Override
public void onAgcDataReceived(byte[] bytes, int i) {
}
@Override
public void onInputDataReceived(byte[] bytes, int i) {
}
@Override
public void onOutputDataReceived(byte[] bytes, int i) {
}
@Override
public void onEchoDataReceived(byte[] bytes, int i) {
}
@Override
public void onSevcDoaResult(int i) {
}
@Override
public void onSevcNoiseResult(String s) {
}
@Override
public void onMultibfDataReceived(byte[] data, int size, int index) {
}
@Override
public void onEchoVoipDataReceived(byte[] bytes, int i) {
}
}
/**
* android调用js传送识别语音内容
*/

31
app/src/main/java/qianmu/container/app/MyApplication.java

@ -12,6 +12,8 @@ import android.util.Log;
import com.aispeech.DUILiteConfig;
import com.aispeech.DUILiteSDK;
import com.aispeech.export.config.AuthConfig;
import com.aispeech.export.config.UploadConfig;
import com.aispeech.lite.Engines;
import com.alibaba.android.arouter.BuildConfig;
import com.alibaba.android.arouter.launcher.ARouter;
import com.jakewharton.processphoenix.ProcessPhoenix;
@ -91,28 +93,37 @@ public class MyApplication extends Application {
private void initSbcSDK(){
AuthConfig authConfig = new AuthConfig.Builder()
.setCustomDeviceName("19a2ebc079d6d99e") // my_uniqie_device_name只是举例,请用真实设备唯一码替换
.setCustomDeviceName("ae28ccd49e9c53b9") //
.setAuthTimeout(5000)
.setLoadSerial(true)
.setLoadMacAddress(true)
.setLoaAndroidID(true)
.create();
// 产品认证需设置 apiKey, productId, productKey, productSecret
DUILiteConfig config = new DUILiteConfig.Builder()
.setApiKey("3ac5b2151aab3ac5b2151aab692e463b")
.setProductId("279633115")
.setProductKey("f08d7e0da576f89fedc67bbf44e2e2d6")
.setProductSecret("25846304a956fd09b14de16cbf3832b0")
UploadConfig uploadConfig = new UploadConfig.Builder()
.setUploadEnable(false)
.create();
DUILiteConfig config = new DUILiteConfig.
Builder().setApiKey("d823edab41b8d823edab41b868ecc552")
.setProductId("279632533")
.setProductKey("ab73065d16e11bcfac026eee3db9f6cb")
.setProductSecret("85d9490c438099acc33be7676799399f")
.setAuthConfig(authConfig)
.setUploadConfig(uploadConfig)
.create();
config.setAudioRecorderType(13);
DUILiteSDK.init(getApplicationContext());
DUILiteSDK.setGlobalAudioSaveEnable(true); //使能全局音频保存开关,此开关关闭则不保存音频.默认为开,但是需要设置下面的保存路径才能保存音频
DUILiteSDK.setGlobalAudioSavePath(Constant.CACHE_PATH);
//DUILiteSDK.setGlobalAudioSaveEnable(true); //使能全局音频保存开关,此开关关闭则不保存音频.默认为开,但是需要设置下面的保存路径才能保存音频
//DUILiteSDK.setGlobalAudioSavePath(Constant.CACHE_PATH);
// SDK 授权
DUILiteSDK.doAuth(getApplicationContext(), config, new DUILiteSDK.InitListener() {
@Override
public void success() {
DUILiteSDK.setGlobalDisableAudioSaveEngines(Engines.VPRINT);
LoggerUtil.d("DUILiteSDKInit: ", "授权成功! ");
}

Loading…
Cancel
Save