首页 新闻 会员 周边 捐助

怎样用语音识别将一段视频转化为文字, 比如:百度的语音识别api

0
悬赏园豆:20 [已解决问题] 解决于 2016-09-09 17:19

语音识别软件既然已经可以识别声音,再多做一步,将识别的文本输出来很简单, 但百度搜了一下没发现这类软件,难道没这种需求吗? 本人非技术方向, 只是对技术应用感兴趣,诚请懂行的指教.

谨思的主页 谨思 | 初学一级 | 园豆:184
提问于:2015-10-09 17:35
< >
分享
最佳答案
0

你去用科大讯飞的语音识别吧,目前是他们做的最好

收获园豆:20
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-10-09 17:37

其实我是想问具体应该怎样做.

谨思 | 园豆:184 (初学一级) | 2015-10-09 17:43

@谨思: 。。他有接口的,你输出就行给段代码你看下,

import java.util.ArrayList;
import com.iflytek.speech.RecognizerListener;
import com.iflytek.speech.RecognizerResult;
import com.iflytek.speech.SpeechError;
import com.iflytek.speech.SpeechRecognizer;
 
public class TestXF {
     
    /***
     * 这里需要改成你自己的实际appid
     */
    private String version = 改成你自己实际的appid;
    private SpeechRecognizer recognizer;
    private StringBuffer rStr = new StringBuffer();
    /***
     * 初始化声音组件
     */
    {
        if (SpeechRecognizer.getRecognizer() == null)
            SpeechRecognizer.createRecognizer("appid=" + version);
        recognizer = SpeechRecognizer.getRecognizer();
    }
 
    public String listen() {
 
        if (rStr.length() != 0)
            rStr.setLength(0);
        // 开始监听语音输入,sms表示文本,vad_eos表示用户停止说话后多长时间表示结束
        recognizer.startListening(resultListener, "sms",
                "vad_bos =10000,vad_eos=2000", null);
        while (true) {
            if (recognizer.isAvaible())
                break;
        }
        return rStr.toString();
    }
 
    private RecognizerListener resultListener = new RecognizerListener() {
 
        @Override
        public void onCancel() {
        }
 
        @Override
        public void onEnd(SpeechError mLastError) {
 
        }
 
        @Override
        public void onBeginOfSpeech() {
        }
 
        @Override
        public void onEndOfSpeech() {
 
        }
 
        /**
         * 获取识别结果. 获取ArrayList类型的识别结果,并对结果进行累加,显示到Area里
         */
        @Override
        public void onResults(ArrayList results, boolean islast) {
            String text = "";
            for (int i = 0; i < results.size(); i++) {
                RecognizerResult result = (RecognizerResult) results.get(i);
                text += result.text;
            }
            rStr.append(text);
        }
 
        @Override
        public void onVolumeChanged(int volume) {
            if (volume == 0)
                volume = 1;
            else if (volume >= 6)
                volume = 6;
 
        }
    };
 
    public static void main(String[] args) {
 
        TestXF t = new TestXF();
        System.out.println("我刚才说的:" + t.listen());
        System.out.println("第二句---------------");
        System.out.println("我刚才说的:" + t.listen());
    }
}
稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-09 17:47

@谨思: 开源的这种软件目前没怎么看到

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-09 17:49
其他回答(1)
1

是的,建议可以去讯飞开放平台看看,有详细的语音识别技术文档。。http://xfyun.cn/ 不谢!

imjak | 园豆:208 (菜鸟二级) | 2016-01-21 12:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册