急求IBM viavoice

xingyuebaby 2007-07-23 01:21:16
小弟最近要用java做一款语音识别软件,想利用IBM viavoice引擎来做,可网上到处都找不到,希望哪位大虾能传给我一份,或是告诉我下载地址(IBM官方网站就算了,已经删除了)
...全文
641 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
tempstack 2007-11-08
  • 打赏
  • 举报
回复
hi
please refer to INITPORT INC. 音港公司 www.initport.com
专注在语音识别领域(ASR),
提供各个平台的语音识别软件解决方案

a 运行在嵌入平台的嵌入式语音识别软件产品
(目前为国内主流手机公司以及手机设计公司提供嵌入式的语音识别解决方案.可以在目前所有的主流手机平台
(从Arm7到Arm9)实现语音识别功能. )

b 运行PC机上的桌面系统语音识别软件产品
目已经有盲人上网软件使用了桌面系统的语音识别软件产品

c 运行在服务器上的语音识别软件产品
这个主要是针对呼叫中心领域的应用

如果有兴趣麻烦
mailto: info@initport.com
xingyuebaby 2007-07-25
  • 打赏
  • 举报
回复
这个问题我已经解决了,谢谢大家!!!
Clerk_9919 2007-07-24
  • 打赏
  • 举报
回复
应该不是吧,你的JAVA本地声明是什么样的?你的代码是什么样的?
Clerk_9919 2007-07-23
  • 打赏
  • 举报
回复
我以前只用C++做过,因为它是用COM技术实现的,用C++实现 TTS 非常容易,资料也特别多。你是不是可以考虑 用JNI?
xingyuebaby 2007-07-23
  • 打赏
  • 举报
回复
谢谢你,我也觉得依靠IBM是没什么戏了,你尝试过JNI吗?我这边又出了个问题啊,
Exception in thread "main" java.lang.UnsatisfiedLinkError: test.WinMsgBox.showMsgBox(Ljava/lang/String;)V
at test.WinMsgBox.showMsgBox(Native Method)
at test.TestJNI.main(TestJNI.java:12)
我也不知道是哪有问题,能帮忙看看吗?是不是环境没有配置好啊
xingyuebaby 2007-07-23
  • 打赏
  • 举报
回复
package testSynthesis;

import javax.speech.*;
import javax.speech.synthesis.*;
import java.util.Locale;

public class HelloWorld_Synthesis {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
SynthesizerModeDesc temp=new SynthesizerModeDesc(Locale.ENGLISH);
Synthesizer synth=Central.createSynthesizer(temp);
if(synth==null)
synth=Central.createSynthesizer(new SynthesizerModeDesc(Locale.getDefault()));
synth.allocate();
//System.out.println("something is wrong");
synth.resume();

synth.speakPlainText("hello,world!", null);

synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
synth.deallocate();
}catch(Exception e){
e.printStackTrace();
}

}

}
系统报错:java.lang.NullPointerException
at testSynthesis.HelloWorld_Synthesis.main(HelloWorld_Synthesis.java:19)
即 在rec.allocte()使有空指针错误
xingyuebaby 2007-07-23
  • 打赏
  • 举报
回复
我用的是java来开发,楼上有这方面的资料或经验吗?我指的是用java来使用SpeechSDK
Clerk_9919 2007-07-23
  • 打赏
  • 举报
回复
IBM 的不好找,你也可以用Microsoft的嘛 SpeechSDK
fxbird 2007-07-23
  • 打赏
  • 举报
回复
太难了,祝好运,中国恐怕是找不到这样的资料了。
Clerk_9919 2007-07-23
  • 打赏
  • 举报
回复
随便Google了一下类似的代码
Clerk_9919 2007-07-23
  • 打赏
  • 举报
回复
import java.io.*;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.StringTokenizer;
import javax.speech.*;
//import javax.speech.recognition.*;
import javax.speech.synthesis.*;

public class TTS {
protected static boolean _DEBUG = true; // debug


static Synthesizer synth;
static ResourceBundle resources;

public TTS() {
try {
// locale, resources
//if (args.length>0) Locale.setDefault(new Locale(args[0], ""));
//if (args.length>1) Locale.setDefault(new Locale(args[0], args[1]));
// dbg("locale is " + Locale.getDefault());
// create a synthesizer, speak a greeting
synth = Central.createSynthesizer(null);

// myEngineListener listener = new myEngineListener();
// synth.addEngineListener(listener);
synth.allocate();
} catch (Exception e) {
e.printStackTrace();
// System.exit(-1);
}

} // end ctor

public static void main(String args[]) {
TTS aTTS = new TTS();
aTTS.say("hello this is a test");
} // end main

// Cancel output of this Synthesizer and remove all items from the speaking queue.
public void cancelAll() {
synth.cancelAll();
}

public void say(String msg) {
int chunkSize = 100;
int startPos = 0;
int endPos = 0;
int pos = 0;
while (pos <= msg.length()) {
endPos = pos + chunkSize;
if (endPos>msg.length()) endPos = msg.length();
sayChunk(msg.substring(pos,endPos));
pos = endPos+1;
}
}

private void sayChunk(String msg) {

try {
// synthesizer.speak(resources.getString("greeting"), null);
if (_DEBUG )System.out.println("SAY > "+msg);
mySpeakableListener aSpeakableListener = new mySpeakableListener();
synth.speak(msg, aSpeakableListener);
//synth.waitQueueEmpty();
//System.out.println("after"+synth.isQueueEmpty());
//synth.deallocate();

} catch (Exception e) {
e.printStackTrace();
System.exit(-1);

}
}

static void dbg(String s) {
System.out.println(s);
}

}

class myEngineListener implements EngineListener {
public void engineAllocated(EngineEvent e) {System.out.println("engineAllocated");}
public void engineDeallocated(EngineEvent e) {System.out.println("engineDeallocated");}
public void enginePaused(EngineEvent e) {System.out.println("enginePaused");}
public void engineResumed(EngineEvent e) {System.out.println("engineResumed");}
}



class mySpeakableListener implements SpeakableListener {

public void beginSpeakable(SpeakableEvent ev){
System.out.println( "BEGIN_SPEAKABLE event has occurred");}

public void cancelSpeakable(SpeakableEvent ev) {
System.out.println( "CANCEL_SPEAKABLE event has occurred");}

public void endSpeakable(SpeakableEvent ev) {
System.out.println( "END_SPEAKABLE event has occurred");}

public void markerReached(SpeakableEvent ev) {
System.out.println( "MARKER_REACHED event has occurred");}

public void pauseSpeakable(SpeakableEvent ev) {
System.out.println( "PAUSE_SPEAKABLE event has occurred");}

public void resumeSpeakable(SpeakableEvent ev) {
System.out.println( "RESUME_SPEAKABLE event has occurred");}

public void startWord(SpeakableEvent ev) {
System.out.println( "START_WORD event has occurred");}

public void topOfQueue(SpeakableEvent ev) {
System.out.println( "TOP_OF_QUEUE event has occurred");}

} // end class

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧