V2EX stevechan
 stevechan 最近的时间轴更新
stevechan

stevechan

V2EX 第 207856 号会员,加入于 2016-12-27 14:26:31 +08:00
stevechan 最近回复了
@mlhorizon
@ThatIsFine 后面我会把细节的发力和 动作要领总结上去, 并画上图标记, 受力分析等, 结构力分析
@x86 就是来打产品经理的,
@doublleft 不是啊, 我自己练咏春拳总结的啊, 有些是 借用一下网上的图片, 但是文字总结全部是 自己的, 而且我还会自己画功夫的动作图上去啊.
欢迎大家 start 和提 issues
不到 100 行代码就实现啦

```clojure

(ns xunfei-clj.core
(:require [cheshire.core :as cjson])
(:import [com.iflytek.cloud.speech
SpeechRecognizer
SpeechConstant
SpeechUtility
SpeechSynthesizer
SynthesizerListener
SynthesizeToUriListener
SpeechError
RecognizerListener
RecognizerResult]
[org.json JSONArray JSONObject JSONTokener]))

;; 讯飞初始化: (app-init "59145fb0") , 可以自行到讯飞开放平台注册一个 appid, 或者用本人的测试
(defn app-init
[appid]
(let [appid (str SpeechConstant/APPID "=" appid)]
(SpeechUtility/createUtility appid)))

;; 设置合成监听器,对 SynthesizerListener 进行 proxy,添加对象属性控制
(defn m-syn-listener-gen
[]
(proxy [SynthesizerListener] []
(onCompleted [_])
(onBufferProgress [^Integer percent ^Integer begin-pos ^Integer end-pos ^String info])
(onSpeakBegin [])
(onSpeakPaused [])
(onSpeakProgress [^Integer percent ^Integer begin-pos ^Integer end-pos])
(onSpeakResumed [])))

;; (read-text-as-voice "输入文本,用讯飞语音合成器, 合成发音播放" (fn [mTts text] ...播放或者是保存到音频文件...) )
(defn read-text-to-voice
[text output-fn]
(let [m-tts (doto (SpeechSynthesizer/createSynthesizer)
(.setParameter SpeechConstant/VOICE_NAME "xiaoyan")
(.setParameter SpeechConstant/SPEED "50")
(.setParameter SpeechConstant/VOLUME "80")
(.setParameter SpeechConstant/TTS_AUDIO_PATH "./tts_test.pcm"))]
(output-fn m-tts text)))

;; (text-to-player "这里是文本播放语音")
(defn text-to-player
[text]
(read-text-to-voice
text
(fn [m-tts text] (.startSpeaking m-tts text (m-syn-listener-gen)))))

;; 将 text 合成的语音保存到文件的合成器
(defn synthesize-to-uri-listener
[]
(proxy [SynthesizeToUriListener] []
(onBufferProgress [^Integer progress])
(onSynthesizeCompleted [^String uri ^SpeechError error])))

;; (text-to-vfile "将 text 合成的语音保存到文件" "testest.wav")
(defn text-to-vfile
[text url]
(read-text-to-voice
text
(fn [m-tts text]
(.synthesizeToUri m-tts text url (synthesize-to-uri-listener)))))

;; =======>>>> 下面是语音识别生成文本 ====>>>>>

;; 语音识别监听器 Usage:
;; (def regcog-res (atom (list)))
;; (m-reco-listener #(swap! regcog-res conj %))
(defn m-reco-listener
[result-fn]
(proxy [RecognizerListener] []
(onResult [^RecognizerResult results ^Boolean is-last]
(let [res (-> results .getResultString cjson/parse-string)]
(println "识别语音结果:=>" res)
(result-fn res)))
(onError [^SpeechError error] (.getPlainDescription error true) )
(onBeginOfSpeech [])
(onVolumeChanged [^Integer volume])
(onEndOfSpeech [])
(onEvent [^Integer eventType ^Integer arg1 ^Integer arg2 ^String msg])))

;; (record-voice-to-text)
(defn record-voice-to-text
[m-reco-listener]
(let [m-iat
(doto (SpeechRecognizer/createRecognizer)
(.setParameter SpeechConstant/DOMAIN "iat")
(.setParameter SpeechConstant/LANGUAGE "zh_cn")
(.setParameter SpeechConstant/ACCENT "mandarin"))]
(.startListening m-iat (m-reco-listener))))

```
欢迎给我提 Issues 和 Start 呀 :-)
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5379 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 19ms UTC 09:01 PVG 17:01 LAX 02:01 JFK 05:01
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86