android128 zhihuibeijing 科大讯飞 语音识别

- 科大讯飞 开放平台 http://open.voicecloud.cn/

package com.itheima.voicedemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;

import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.RecognizerListener;
import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechRecognizer;
import com.iflytek.cloud.SpeechSynthesizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.SynthesizerListener;
import com.iflytek.cloud.ui.RecognizerDialog;
import com.iflytek.cloud.ui.RecognizerDialogListener;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 初始化语音引擎
        SpeechUtility.createUtility(this, SpeechConstant.APPID + "=54b8bca3");
    }

    /**
     * 开始听写
     */
    public void listen(View view) {
        // 1.创建SpeechRecognizer对象,第二个参数:本地听写时传InitListener
        SpeechRecognizer mIat = SpeechRecognizer.createRecognizer(this, null);

        // 2.设置听写参数,详见《科大讯飞MSC API手册(Android)》SpeechConstant类
        mIat.setParameter(SpeechConstant.DOMAIN, "iat");
        mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
        mIat.setParameter(SpeechConstant.ACCENT, "mandarin");

        // 开始听写
        mIat.startListening(mRecoListener);

    }

    /**
     * 交互动画
     */
    public void listenUI(View view) {
        RecognizerDialog iatDialog = new RecognizerDialog(this, mInitListener);

        // 2.设置听写参数,详见《科大讯飞MSC API手册(Android)》SpeechConstant类
        iatDialog.setParameter(SpeechConstant.DOMAIN, "iat");
        iatDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
        iatDialog.setParameter(SpeechConstant.ACCENT, "mandarin");

        iatDialog.setListener(recognizerDialogListener);

        iatDialog.show();
    }

    /**
     * 语音朗诵
     */
    public void read(View view) {
        SpeechSynthesizer mTts = SpeechSynthesizer
                .createSynthesizer(this, null);

        mTts.setParameter(SpeechConstant.VOICE_NAME, "vixm");
        mTts.setParameter(SpeechConstant.SPEED, "50");
        mTts.setParameter(SpeechConstant.VOLUME, "80");
        mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);

        mTts.startSpeaking("床前明月光,地上鞋两双,床上狗男女,其中就有你! 你好啊?",
                mSynthesizerListener);
    }

    private SynthesizerListener mSynthesizerListener = new SynthesizerListener() {

        @Override
        public void onSpeakResumed() {

        }

        @Override
        public void onSpeakProgress(int arg0, int arg1, int arg2) {

        }

        @Override
        public void onSpeakPaused() {

        }

        @Override
        public void onSpeakBegin() {

        }

        @Override
        public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {

        }

        @Override
        public void onCompleted(SpeechError arg0) {

        }

        @Override
        public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) {

        }
    };

    private RecognizerDialogListener recognizerDialogListener = new RecognizerDialogListener() {

        @Override
        public void onResult(RecognizerResult results, boolean isLast) {
            System.out.println(results.getResultString());
            System.out.println("isLast=" + isLast);
        }

        @Override
        public void onError(SpeechError arg0) {

        }
    };

    private InitListener mInitListener = new InitListener() {

        @Override
        public void onInit(int arg0) {
        }
    };

    private RecognizerListener mRecoListener = new RecognizerListener() {

        /**
         * 语音识别结果 isLast=true表示会话结束
         */
        @Override
        public void onResult(RecognizerResult results, boolean isLast) {
            System.out.println(results.getResultString());//打印听到的结果。
        }

        @Override
        public void onBeginOfSpeech() {

        }

        @Override
        public void onEndOfSpeech() {

        }

        @Override
        public void onError(SpeechError arg0) {

        }

        @Override
        public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {

        }

        @Override
        public void onVolumeChanged(int arg0) {

        }
    };
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.itheima.voicedemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <!-- 连接网络权限,用于执行云端语音能力 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!-- 读取网络信息状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 获取当前wifi状态 -->
    <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.READ_CONTACTS" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.itheima.voicedemo.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

时间: 2024-10-05 14:06:29

android128 zhihuibeijing 科大讯飞 语音识别的相关文章

百度语音识别vs科大讯飞语音识别

一.结果 从笔者试验的结果来看,科大讯飞的语音识别技术远超百度语音识别 二.横向对比   科大讯飞语音识别 百度语音识别 费用 各功能的前5小时免费 全程免费 转换精准率 非常高 比较低 linux SDK c c++ 原文地址:https://www.cnblogs.com/dakewei/p/9739135.html

用Python来使用科大讯飞语音识别,so easy

在人工智能高速发展的今天,语音识别技术被带入到人们的工作和生活中,开始被越来越多的人关注和使用,今天,当各种在线客服被机器人客服代替,当速记翻译馆被语音识别代替,甚至当收银员.驾驶员.工厂工人.普通文书和律师都被人工智能代替时,人们也越来越焦虑.下面这篇文章分享Python用ctypes调用动态库的方式使用科大讯飞语音识别. ctypes 是 Python 的一个模块,它提供了C语言相关的数据类型,可以方便的调用C语言编写的DLL(Windows 动态链接库)和so(Linux动态链接库).科大

科大讯飞语音识别

随着当今社会的高速发展,我们所使用的产品也向着遍历和智能的方面发展着,当然了手机端的App也不例外.现在的App都在缩减用户操作的流程,优化用户的体验,为了更加便利用户.提高用户的DAU(日活),增加用户的粘性一般我们都会想出比较新颖的招式. 如果现在有这样一个需求:用户需求:用户需要绑定银行卡输入银行卡号,手动输入增加用户的操作度,所以用户可以通过语音读取银行卡号码,是不是既方便又只 能,现在做语音识别的有一些不错的开放平台供我们使用,一家是科大讯飞平台,一家是百度语音平台.我个人比较偏爱科大

集成科大讯飞语音识别接口项目分享

语音识别技术科大讯飞的识别精度真的是数一数二,像某度之类恶心到家的狗屎,充其量就是个摆设,下面介绍一下科大讯飞的语音集成. 1.到科大讯飞官网 http://www.xfyun.cn/ 注册账号和创建应用并获取appkey,然后下载Demo和SDK,这些步骤都与三方接口的接入类似. 2.运行一下Demo,先试试效果,看语音识别功能是否有效,先试试手,检验一下识别精度,是否满足要求. 3.根据Demo来集成相对应的功能:     A.首先拷贝SDK,在Demo或者下载下来的开源项目里找到SDK,M

ros科大讯飞语音识别

转自http://www.ncnynl.com/archives/201611/1069.html ROS入门教程-编写科大讯飞语音SDK的ROS包 说明 ROS软件包xfei_asr是集成自科大讯飞的linux的DEMO 介绍xfei_asr的安装和使用 介绍如何发布文字主题转变成语音播放 介绍如何录音并转变成文字输出,并发布主题 xf-ros说明 @author ncnynl <[email protected]> @time 2016-11-12 @website http://www.

ros语音交互(四)移植科大讯飞语音识别到ros

将以前下载的的语音包的 samples/iat_record/的iat_record.c speech_recognizer.c speech_recognizer.c 拷贝到工程src中, linuxrec.h  speech_recognizer.h formats.h文件拷贝到 工程的include中 下面修改iat_record.c文件为xf_asr.cpp /* * xf_asr_node * xf_asr.cpp * 语音听写(iFly Auto Transform)技术能够实时地将

ros科大讯飞语音识别环境配置

以在线命令词识别为例: 链接:http://www.xfyun.cn/sdk/dispatcher 1.下载SDK,解压: 2.在ROS工作空间下创建一个Package: catkin_create_pkg xfei_asr roscpp rospy std_msgs 3.将SDK文件夹中的头文件,即下载的SDK文件夹中include文件夹下的 .h文件拷贝至xfei_asr/include/下: 4.将SDK文件夹中sample/asr_sample中的asr_sample.c文件拷贝至xfe

转:基于科大讯飞语音API语音识别开发详解

最近项目需要用到android语音识别,立马就想到科大讯飞,结合官方实例及阅读API文档,初步的完成了Android语音识别,下面是实现过程实录. 一.准备工作 1.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://open.voicecloud.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册

ios语音识别(讯飞)

语音识别系统 为了方便人们的生活,许多的方面都可以通过语音指令来代替手动输入来执行想要的指令.现在做语音识别的有一些不错的开放平台供我们使用,一家是科大讯飞平台,一家是百度语音平台.我个人比较偏爱科大讯飞,因为科大讯飞的优势在于大 段大段的文字识别上,准确率较高.这正好能符合我输入银行卡号准确无误的需求.这篇博客也主要讲的是讯飞语音SDK的使用.下面我们来详细看一下科大讯飞. 1.科大讯飞开放平台 2.科大讯飞iOS - API开放平台 科大讯飞的操作步骤 1.注册ID 正常的注册步骤,一步一步