安卓接入訊飛語音識別

因為該項目不適合圖形展示贰镣,所以無圖

需要使用錄音功能,那么虛擬機是不行的治宣,只能使用真機測試
集成到項目中怕享,需要將訊飛SDK里的內容搬到項目對應位置

項目結構.png

在AndroidMainfest.xml中添加相應權限,安卓多少版本需要在代碼中動態(tài)獲取權限尾抑,此配置無效歇父。


    <!--連接網絡權限,用于執(zhí)行云端語音能力 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--獲取手機錄音機使用權限再愈,聽寫榜苫、識別、語義理解需要用到此權限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!--讀取網絡信息狀態(tài) -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--獲取當前wifi狀態(tài) -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允許程序改變網絡連接狀態(tài) -->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <!--讀取手機信息權限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--讀取聯(lián)系人權限践磅,上傳聯(lián)系人需要用到此權限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <!--外存儲寫權限单刁,構建語法需要用到此權限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--外存儲讀權限,構建語法需要用到此權限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--配置權限府适,用來記錄應用配置信息 -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    <!--手機定位信息羔飞,用來為語義等功能提供定位,提供更精準的服務--> <!--定位信息是敏感信息
檐春,可通過Setting.setLocationEnable(false)關閉定位請求 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

在build.gradle中填加依賴

dependencies {
    implementation files('libs\\Msc.jar')
    compile 'com.google.code.gson:gson:2.2.4'
}

在項目初始化時初始化訊飛工具逻淌。

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        checkPermission();

        //建議在創(chuàng)建時添加,xxxxx為對應的訊飛appId
        SpeechUtility.createUtility(this, SpeechConstant.APPID + "=xxxxxx");
}

隨意在頁面上添加一個按鈕疟暖,然后綁定監(jiān)聽事件


        bnt_video =findViewById(R.id.bnt_video);
        bnt_video.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                initSpeech();
            }
        });

    /**
     * 初始化語音識別
     */
    public void initSpeech() {
        // 語音配置對象初始化
//      SpeechRecognizer mIat = SpeechRecognizer.createRecognizer(NoteEdit.this, null);
        //1.創(chuàng)建RecognizerDialog對象
        RecognizerDialog mDialog = new RecognizerDialog(NoteEdit.this, null);
        // 2.設置聽寫參數卡儒,詳見《科大訊飛MSC API手冊(Android)》SpeechConstant類
//      mIat.setParameter(SpeechConstant.DOMAIN, "iat"); // domain:域名
//      mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
//      mIat.setParameter(SpeechConstant.ACCENT, "mandarin"); // mandarin:普通話
        //2.設置accent、language等參數
        mDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
        mDialog.setParameter(SpeechConstant.ACCENT, "mandarin");
        //3.設置回調接口
        mDialog.setListener(new RecognizerDialogListener() {
            @Override
            public void onResult(RecognizerResult recognizerResult, boolean isLast) {
                if (!isLast) {
                    //解析語音
                    String result = parseVoice(recognizerResult.getResultString());
                    et_content.setText(result);

                    //獲取焦點
                    et_content.requestFocus();
                    //將光標定位到文字最后俐巴,以便修改
                    et_content.setSelection(result.length());
                }
            }

            @Override
            public void onError(SpeechError speechError) {

            }
        });
        //4.顯示dialog骨望,接收語音輸入
        mDialog.show();
    }

    /**
     * 解析語音json
     */
    public static String parseVoice(String resultString) {
        Gson gson = new Gson();
        Voice voiceBean = gson.fromJson(resultString, Voice.class);

        StringBuffer sb = new StringBuffer();
        ArrayList<Voice.WSBean> ws = voiceBean.ws;
        for (Voice.WSBean wsBean : ws) {
            String word = wsBean.cw.get(0).w;
            sb.append(word);
        }
        return sb.toString();
    }

    /**
     * 語音對象封裝
     */
    public class Voice {

        public ArrayList<WSBean> ws;

        public class WSBean {
            public ArrayList<CWBean> cw;
        }

        public class CWBean {
            public String w;
        }
    }

技術難點:
android 64位機子兼容32位so包的操作
https://blog.csdn.net/qq_35534596/article/details/78010172

android訊飛語音開發(fā)常遇到的問題

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
禁止轉載,如需轉載請通過簡信或評論聯(lián)系作者欣舵。
  • 序言:七十年代末擎鸠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缘圈,更是在濱河造成了極大的恐慌劣光,老刑警劉巖袜蚕,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绢涡,居然都是意外死亡牲剃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門雄可,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凿傅,“玉大人,你說我怎么就攤上這事数苫∠凉椋” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵文判,是天一觀的道長过椎。 經常有香客問我,道長戏仓,這世上最難降的妖魔是什么疚宇? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮赏殃,結果婚禮上敷待,老公的妹妹穿的比我還像新娘。我一直安慰自己仁热,他們只是感情好榜揖,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抗蠢,像睡著了一般举哟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迅矛,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天妨猩,我揣著相機與錄音,去河邊找鬼秽褒。 笑死壶硅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的销斟。 我是一名探鬼主播庐椒,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚂踊!你這毒婦竟也來了约谈?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窗宇,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體特纤,經...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡军俊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捧存。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粪躬。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖昔穴,靈堂內的尸體忽然破棺而出镰官,到底是詐尸還是另有隱情,我是刑警寧澤吗货,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布泳唠,位于F島的核電站,受9級特大地震影響宙搬,放射性物質發(fā)生泄漏笨腥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一勇垛、第九天 我趴在偏房一處隱蔽的房頂上張望脖母。 院中可真熱鬧,春花似錦闲孤、人聲如沸谆级。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肥照。三九已至,卻和暖如春勤众,著一層夾襖步出監(jiān)牢的瞬間建峭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工决摧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亿蒸,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓掌桩,卻偏偏與公主長得像边锁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子波岛,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359