在實現微信公衆號裏面語音轉文字遇到得錯誤得總結

  1. 最開始通過main方法已經實現了整個得流程,當講項目整合之後,發現各種問題各種報,首先根據微信得service_id下載得amr文件是有值得
  2. 這裏是沒有問題,但是在利用jave進行格式轉換得時候就爆出了這樣得錯誤

it.sauronsoftware.jave.InputFormatException: Unknown format
    at it.sauronsoftware.jave.Encoder.parseMultimediaInfo(Encoder.java:532)
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:840)
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:713)
    at com.hat.wxReversion.commonReversion.VoiceController.changeToMp3(VoiceController.java:189)
    at com.hat.wxReversion.commonReversion.VoiceController.saveImageToDisk(VoiceController.java:127)
    at com.hat.wxReversion.commonReversion.VoiceController.main(VoiceController.java:45)

這個原因是因爲調用微信得臨時文件下載得接口實利用錯了接口鏈接應該用

https://api.weixin.qq.com/cgi-bin/media/get?access_token=" + accessToken + "&media_id=" + mediaId

3。然後本地運行沒有任何問題,在liunx上面又在轉換成MP3得時候發生了這樣得問題

it.sauronsoftware.jave.InputFormatException: Invalid data found when processing input

這個問題就讓我很費解了,

由於跟本地得代碼事完全一致得,但是 在linux下卻amr爲無效得文件,無效得原因是因爲我在配置文件路徑得時候,配置的不對,導致讀取文件的時候,找不到文件,還有一種可能是(其實怪自己,頁面往後傳service_id的時候,沒傳到後臺,導致的)

4。最後利用訊飛的語音轉文字的工具,裏面涉及到了配置文件,轉換工具以及轉換類,我會將他放進我的資源裏面。

5。測試環境成功之後還會有這樣的一個錯誤,不過不影響

it.sauronsoftware.jave.EncoderException: video:0kB audio:44kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.033072%
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:926)
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:713)
    at com.hat.wxReversion.commonReversion.VoiceController.changeToMp3(VoiceController.java:194)
    at com.hat.wxReversion.commonReversion.VoiceController.saveImageToDisk(VoiceController.java:132)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
02-Apr-2019 14:14:31.132 WARNING [http-nio-8080-exec-1] org.jaudiotagger.tag.id3.AbstractID3v2Frame.readIdentifier b251df851eeb416f9f8f8480c045e7f4.mp3:No space to find another frame:
02-Apr-2019 14:14:31.132 WARNING [http-nio-8080-exec-1] org.jaudiotagger.tag.id3.ID3v24Tag.readFrames b251df851eeb416f9f8f8480c045e7f4.mp3:Invalid Frame:b251df851eeb416f9f8f8480c045e7f4.mp3:No space to find another frame
[fangj][2019-04-02 14:14:31] INFO  com.iflytek.msp.cpdb.lfasr.worker.UploadWorker  - [COMPENT]-CLIENT [PROCESS]-UploadWorker [ID]-null [STATUS]- [MEASURE]-(-1) ms [DEF]-prepare ok
[fangj][2019-04-02 14:14:31] INFO  com.iflytek.msp.cpdb.lfasr.worker.UploadWorker  - [COMPENT]-CLIENT [PROCESS]-UploadWorker [ID]-a47136a374ef401aaaa244c392031fcf [STATUS]- [MEASURE]-(-1) ms [DEF]-get task_id:%sa47136a374ef401aaaa244c392031fcf
[fangj][2019-04-02 14:14:31] INFO  com.iflytek.msp.cpdb.lfasr.worker.UploadWorker  - [COMPENT]-CLIENT [PROCESS]-UploadWorker [ID]-a47136a374ef401aaaa244c392031fcf [STATUS]- [MEASURE]-(-1) ms [DEF]-write meta info success, store file://usr//local//tomcat//apache-tomcat-8.5.37//voice/a47136a374ef401aaaa244c392031fcf.dat
[fangj][2019-04-02 14:14:32] INFO  com.iflytek.msp.cpdb.lfasr.worker.UploadThread  - [COMPENT]-CLIENT [PROCESS]-UploadThread [ID]-a47136a374ef401aaaa244c392031fcf [STATUS]- [MEASURE]-(-1) ms [DEF]-upload file send success, file:/usr/local/tomcat/apache-tomcat-8.5.37/voice/b251df851eeb416f9f8f8480c045e7f4.mp3, task_id:a47136a374ef401aaaa244c392031fcf
[fangj][2019-04-02 14:14:33] INFO  com.iflytek.msp.cpdb.lfasr.event.EventHandler  - [COMPENT]-CLIENT [PROCESS]-EventHandler [ID]-a47136a374ef401aaaa244c392031fcf [STATUS]- [MEASURE]-(-1) ms [DEF]-merge success
02-Apr-2019 14:14:33.208 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 task_id=a47136a374ef401aaaa244c392031fcf
02-Apr-2019 14:14:34.208 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 waiting ...................................
02-Apr-2019 14:14:34.329 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 task is incomplete. task_id:a47136a374ef401aaaa244c392031fcf, status:音頻轉寫中
02-Apr-2019 14:14:35.330 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 waiting ...................................
02-Apr-2019 14:14:35.450 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 task is incomplete. task_id:a47136a374ef401aaaa244c392031fcf, status:音頻轉寫中
02-Apr-2019 14:14:36.451 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 waiting ...................................
02-Apr-2019 14:14:36.576 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 task was completed. task_id:a47136a374ef401aaaa244c392031fcf
02-Apr-2019 14:14:36.749 INFO [http-nio-8080-exec-1] [com.hat.utils.LfasrSDKUtils] .changeToMp3 [{"bg":"0","ed":"700","onebest":"又怎麼了?","si":"0","speaker":"0","wordsResultList":[{"alternativeList":[],"wc":"0.5380","wordBg":"10","wordEd":"19","wordsName":"又","wp":"n"},{"alternativeList":[],"wc":"0.0271","wordBg":"23","wordEd":"44","wordsName":"怎麼","wp":"n"},{"alternativeList":[],"wc":"0.6676","wordBg":"50","wordEd":"64","wordsName":"了","wp":"n"},{"alternativeList":[],"wc":"0.0000","wordBg":"64","wordEd":"64","wordsName":"?","wp":"p"}]},{"bg":"980","ed":"2530","onebest":"神經病。","si":"0","speaker":"0","wordsResultList":[{"alternativeList":[],"wc":"1.0000","wordBg":"17","wordEd":"134","wordsName":"神經病","wp":"n"},{"alternativeList":[],"wc":"0.0000","wordBg":"134","wordEd":"134","wordsName":"。","wp":"p"}]}]
又怎麼了?

這裏是轉換成功的操作。至此這個功能的簡單雛形出來了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章