`

讯飞java 语音识别sdk 简单示例

    博客分类:
  • java
阅读更多

1.讯飞官网提供更完整的Demo

2.我的Demo删掉了除语音识别外其余的部分,方便快速上手

3.整个项目在附件中

4.使用了lambda表达式,需要java8才能运行

5.代码如下:

package com.iflytek;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

import com.iflytek.cloud.speech.RecognizerListener;
import com.iflytek.cloud.speech.RecognizerResult;
import com.iflytek.cloud.speech.SpeechConstant;
import com.iflytek.cloud.speech.SpeechError;
import com.iflytek.cloud.speech.SpeechRecognizer;
import com.iflytek.cloud.speech.SpeechUtility;

public class MyFrame extends JFrame
{
	private static final long serialVersionUID = 1L;
	JPanel panelNorth, panelSouth;
	JTextArea textArea;
	JButton button_start, button_stop;
	private SpeechRecognizer mIat;

	public static void main(String[] args)
	{
		new MyFrame();

	}

	public MyFrame()
	{
		initIfly();
		Container con = this.getContentPane();
		con.setLayout(new BorderLayout());
		this.setSize(500, 300);
		this.setLocationRelativeTo(null);
		this.setResizable(true);
		this.setDefaultCloseOperation(3);
		this.setLayout(new BorderLayout());
		setFrame();
		this.add(panelSouth, BorderLayout.SOUTH);
		this.add(panelNorth, BorderLayout.NORTH);
		setVisible(true);
	}

	public void initIfly()
	{
		mIat = SpeechRecognizer.createRecognizer();
		SpeechUtility.createUtility("appid=这里填写你的appid");
		// 例如SpeechUtility.createUtility("appid=12345678");
	}

	public void setFrame()
	{
		panelNorth = new JPanel();
		panelSouth = new JPanel();
		textArea = new JTextArea(30, 30);
		button_start = new JButton("开始");
		button_start.addActionListener(e ->
		{
			setting();
			textArea.setText("");
			if (!mIat.isListening()) mIat.startListening(recognizerListener);
			else mIat.stopListening();
		});
		button_stop = new JButton("停止");
		button_stop.addActionListener(e ->
		{
			mIat.stopListening();
			iatSpeechInitUI();
		});
		panelNorth.add(textArea);
		panelSouth.add(button_start);
		panelSouth.add(button_stop);
	}

	void setting()// 属性设置
	{
		final String engType = "cloud";
		mIat.setParameter(SpeechConstant.ENGINE_TYPE, "cloud");
		mIat.setParameter(SpeechConstant.SAMPLE_RATE, "16000");//
		mIat.setParameter(SpeechConstant.NET_TIMEOUT, "20000");
		mIat.setParameter(SpeechConstant.KEY_SPEECH_TIMEOUT, "60000");
		mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");// 语言en_us(英语)
															// zh_cn(中文)
		mIat.setParameter(SpeechConstant.ACCENT, "mandarin");
		mIat.setParameter(SpeechConstant.DOMAIN, "iat");
		mIat.setParameter(SpeechConstant.VAD_BOS, "5000");
		mIat.setParameter(SpeechConstant.VAD_EOS, "1800");
		mIat.setParameter(SpeechConstant.ASR_NBEST, "1");
		mIat.setParameter(SpeechConstant.ASR_WBEST, "1");
		mIat.setParameter(SpeechConstant.ASR_PTT, "0");// 标点符号 0(关) 1(开)
		mIat.setParameter(SpeechConstant.RESULT_TYPE, "plain"); // 返回数据格式
																// plain或者jason
		mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, null);
	}

	private RecognizerListener recognizerListener = new RecognizerListener()
	{
		@Override
		public void onBeginOfSpeech()
		{
			button_start.setText("听写中...");
			button_start.setEnabled(false);
		}

		@Override
		public void onEndOfSpeech()
		{}

		/**
		 * 获取听写结果. 获取RecognizerResult类型的识别结果,并对结果进行累加,显示到Area里
		 */
		@Override
		public void onResult(RecognizerResult results, boolean islast)
		{

			String text = results.getResultString();
			textArea.append(text);
			text = textArea.getText();

			if (islast)
			{
				iatSpeechInitUI();
			}
		}

		@Override
		public void onVolumeChanged(int volume)
		{}

		@Override
		public void onError(SpeechError error)
		{
			if (null != error)
			{
				textArea.setText(error.getErrorDescription(true));
				iatSpeechInitUI();
			}
		}

		@Override
		public void onEvent(int eventType, int arg1, int agr2, String msg)
		{}
	};

	public void iatSpeechInitUI()
	{
		button_start.setEnabled(true);
		button_start.setText("开始听写");
	}

}

 

 

 

分享到:
评论

相关推荐

    科大讯飞语音识别SDK——java版

    总的来说,科大讯飞的Java语音识别SDK提供了一套完整的解决方案,让开发者可以轻松地将语音识别功能集成到Java应用中,丰富了人机交互的方式,提升了应用的智能化程度。通过阅读`readme.txt`文件,开发者可以获得更...

    java讯飞JDK实现语音识别语音合成

    在本文中,我们将深入探讨如何使用Java实现讯飞JDK进行语音识别与语音合成。讯飞JDK是由科大讯飞公司提供的一款强大的语音技术开发工具包,它为开发者提供了丰富的API,支持语音识别、语音合成、语音唤醒等功能。...

    讯飞语音开发SDK

    总的来说,讯飞语音开发SDK为开发者提供了一个强大且易用的工具,涵盖了语音识别和语音合成的核心技术,并且支持Java编程,使其在各种应用场景中都能发挥出强大的作用。通过深入理解和运用这个SDK,开发者可以构建出...

    实现集成讯飞平台的语音识别功能

    在Android平台上实现集成讯飞平台的语音识别功能是一项常见的任务,尤其对于开发语音交互的应用来说至关重要。讯飞作为中国领先的语音技术提供商,提供了强大的语音识别API,使得开发者能够轻松地在应用中添加语音...

    极简单的讯飞语音识别Demo

    《极简单的讯飞语音识别Demo》 在当前的数字化时代,语音识别技术已经广泛应用到我们的生活中,例如智能助手、自动驾驶汽车、智能家居等。讯飞作为国内知名的语音技术提供商,其语音识别服务备受开发者青睐。本Demo...

    Unity 接入讯飞语音识别包(Android)

    首先,我们需要了解讯飞语音识别SDK。讯飞是一家中国领先的语音技术提供商,其提供的SDK支持多种语言的语音识别,可以将用户的语音转化为文本,适用于各种应用场景,如游戏、教育、智能硬件等。在Unity中集成讯飞...

    讯飞语音识别到串口发出指令

    - 下载适用于Android的讯飞语音识别SDK,并将其导入到你的Android Studio项目中。这通常涉及将aar库文件添加到项目的dependencies。 - 在AndroidManifest.xml中添加必要的权限,如录音权限(`...

    讯飞语音识别最简demo

    3. **讯飞SDK集成**:在项目中集成讯飞语音识别SDK是关键步骤。这通常涉及在Gradle依赖中添加讯飞的库,然后同步项目,使得开发环境中可以访问到讯飞的API。 4. **权限申请**:安卓应用使用语音识别时,需要在`...

    讯飞语音听写demo(java)

    总结,讯飞语音听写Demo(Java)为开发者提供了一个直观的学习和实践平台,通过深入理解并运用这个Demo,开发者不仅可以掌握语音识别的基本操作,还能探索更广阔的应用场景,提升自己的项目开发能力。在AI时代,掌握...

    科大讯飞语音识别java例子 输入音频文件输出音频文件中的内容可编辑的文字内容

    以下是一个简单的Java代码示例,演示了如何使用HttpURLConnection发送POST请求到科大讯飞的语音识别API: ```java import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio....

    讯飞星火大模型的Java SDK 易使用、开箱即用、支持异常、输出、会话结束、会话结束Token信息返回等多种自定义回调处理

    讯飞星火大模型的Java SDK是一款专为开发者设计的工具包,旨在简化与人工智能大模型的交互过程,尤其在语音识别、自然语言理解和对话管理等领域。这款SDK以易用性和灵活性为核心,允许开发者快速集成到自己的Java...

    讯飞语音唤醒demo(测试使用)

    2. **深度学习算法**:讯飞的语音识别系统基于深度神经网络(DNN),它可以处理大量数据并从中学习,提高识别准确性。这种算法对于处理复杂的语音信号,如不同人的发音、语速和口音,有着出色的适应性。 3. **声纹...

    科大讯飞语音识别java版本demo

    开发者可以通过阅读和运行这个示例,快速了解和掌握科大讯飞语音识别SDK的使用方法。 总之,科大讯飞的语音识别Java SDK提供了一种便捷的方式,让开发者能够在Java应用程序中轻松实现语音转文字的功能。通过深入...

    讯飞离线语音听写

    1. **语音识别引擎**:讯飞提供了一个离线的SDK(Software Development Kit),其中包含了一套完整的语音识别引擎。这个引擎能够处理音频数据,将其解析成可读的文本。 2. **音频捕获**:使用Java的AudioSystem类...

    用java实现本地语音实时采取,然后对接阿里AI语音识别实现,语音识别系统。并内部加载逻辑实现电脑语音控制

    在本项目中,我们主要探讨如何使用Java编程语言来实现实时本地语音采集,并通过集成阿里云的AI语音识别服务,构建一个语音识别系统,进而实现计算机的语音控制功能。以下将详细介绍涉及的关键技术点: 1. **Java...

    在线语音合成(流式版)SDK_xunfei_在线语音合成_语音_语音流加工_skillo2q_

    2. **讯飞语音合成**:讯飞是一家在人工智能领域,尤其是语音识别和合成方面具有领先地位的公司。其提供的语音合成服务,能够将文字信息高效地转化为自然流畅的人声输出,提供多种音色和发音风格选择,满足不同应用...

    Java讯飞语音听写

    科大讯飞提供了Java SDK,包含了一系列接口和类,用于与讯飞的语音识别服务进行交互。这些接口通常包括录音、上传、识别等功能,使得开发者可以方便地将语音转化为文字。在项目中,开发者需要先下载并引入讯飞的SDK...

    科大讯飞语音合成示例(离线版本) java可调用 dll so封装

    提供java jni示例程序,linux so工程,windows dll工程,将科大讯飞语音合成程序封装成windows支持的dll和linux支持的so并且导出api,java使用jni直接调用。代码均已编译测试通过,需要appid和mscdll则可以自己去...

    android语音识别计算器-基于讯飞api

    在Android应用中集成讯飞API,开发者可以借助其SDK,它提供了丰富的语音识别接口,包括实时语音转文字、离线语音识别等多种服务。为了使用讯飞API,你需要在科大讯飞官网上注册开发者账号,并创建项目获取API密钥。 ...

Global site tag (gtag.js) - Google Analytics