訊飛語音 使用步驟(針對androidStudio):語音轉文字:

來源:互聯網
上載者:User

標籤:

前言:最近做項目用到了訊飛語音,遂搞了一個簡單的教程,供大家使用。

 訊飛語音  使用步驟:語音轉文字:

 

1,首先去訊飛開放平台( http://www.xfyun.cn/)註冊,帳號:


 

2,註冊後登入:


3,點擊選擇我的語音云:

 

 

4,點擊左側邊欄,建立新的應用:

 

 

5,建立好應用後:複製appid:


 

6,下載sdk:  點擊側邊欄左側sdk下載中心:

選擇我們所需要的功能和平台:



7,點擊下載sdk,儲存檔案,並開啟。


//-----------------------------------------------------------

8,使用androidStudio建立demo:

布局檔案內容:

<Button    android:id="@+id/btn_click"    android:text="點擊開啟訊飛語音辨識"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    /><EditText    android:id="@+id/result"    android:layout_below="@id/btn_click"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:hint="此處顯示你所錄下的內容"    />

效果:

 

 

9,將解壓檔案中libs中  下 的所有jar包,考到項目的  libs檔案夾下,重新整理gradle(eclipse的同學們可以直接全全部考如libs下,並添加類庫):


 

9.1在main檔案夾下建立檔案夾jniLibs。拷貝所有sdk下libs中所有除了.jar的檔案夾,裡面為.so檔案。

9,2,拷貝assets檔案夾到main下面:

效果如下:



 

 

 

//註冊檔案中添加許可權:

<uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.CAMERA"/>


在:mainActivity中添加如下代碼:

注意需要將自己的 appId拷貝到代碼中:

 

package zhaoq_qiang.xunfeidemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import com.iflytek.cloud.RecognizerResult;import com.iflytek.cloud.SpeechConstant;import com.iflytek.cloud.SpeechError;import com.iflytek.cloud.SpeechUtility;import com.iflytek.cloud.ui.RecognizerDialog;import com.iflytek.cloud.ui.RecognizerDialogListener;import org.json.JSONArray;import org.json.JSONObject;import org.json.JSONTokener;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button btn_click;    private EditText mResultText;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btn_click = (Button) findViewById(R.id.btn_click);        mResultText = ((EditText) findViewById(R.id.result));        SpeechUtility.createUtility(this, SpeechConstant.APPID + "= 此處需要填寫你所申請的appId");        btn_click.setOnClickListener(this);    }    @Override    public void onClick(View v) {        btnVoice();    }    //TODO 開始說話:    private void btnVoice() {        RecognizerDialog dialog = new RecognizerDialog(this,null);        dialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");        dialog.setParameter(SpeechConstant.ACCENT, "mandarin");        dialog.setListener(new RecognizerDialogListener() {            @Override            public void onResult(RecognizerResult recognizerResult, boolean b) {                printResult(recognizerResult);            }            @Override            public void onError(SpeechError speechError) {            }        });        dialog.show();        Toast.makeText(this, "請開始說話", Toast.LENGTH_SHORT).show();    }    //回調結果:    private void printResult(RecognizerResult results) {        String text = parseIatResult(results.getResultString());        // 自動填寫地址        mResultText.append(text);    }    public static String parseIatResult(String json) {        StringBuffer ret = new StringBuffer();        try {            JSONTokener tokener = new JSONTokener(json);            JSONObject joResult = new JSONObject(tokener);            JSONArray words = joResult.getJSONArray("ws");            for (int i = 0; i < words.length(); i++) {                // 轉寫結果詞,預設使用第一個結果                JSONArray items = words.getJSONObject(i).getJSONArray("cw");                JSONObject obj = items.getJSONObject(0);                ret.append(obj.getString("w"));            }        } catch (Exception e) {            e.printStackTrace();        }        return ret.toString();    }}

運行程式:

效果

 


 

Demo:https://github.com/229457269/XunFeiVoiceDEmo


後續:後面需要上線到訊飛應用市場的步驟,筆者不在綴述,開發人員完成項目打包後,通過審核,即可將該程式發布,並擷取訊飛市場使用者的收益。

 

 


訊飛語音 使用步驟(針對androidStudio):語音轉文字:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.