speech_recognition.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. package speech_recognition
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/speech_recognition"
  7. "eta/eta_api/services"
  8. "eta/eta_api/utils"
  9. "fmt"
  10. "strconv"
  11. "strings"
  12. "time"
  13. )
  14. type SpeechRecognitionController struct {
  15. controllers.BaseAuthController
  16. }
  17. type SpeechRecognitionCommonController struct {
  18. controllers.BaseCommonController
  19. }
  20. // TODO:RecTaskCallback
  21. // @Title 语音识别回调
  22. // @Description 语音识别回调
  23. // @Param request body services.TencentRecTaskCallback true "type json string"
  24. // @Success 200 string "操作成功"
  25. // @router /rec_task/callback [post]
  26. func (this *SpeechRecognitionCommonController) RecTaskCallback() {
  27. utils.FileLog.Info("RecTaskCallback, -1")
  28. // 此接口返回指定响应体
  29. br := new(services.TencentRecTaskCallbackResp)
  30. defer func() {
  31. _ = this.JSON(br, false, false)
  32. }()
  33. var req services.TencentRecTaskCallback
  34. utils.FileLog.Info("RecTaskCallback, 0")
  35. code, _ := this.GetInt("code", 0)
  36. req.Code = code
  37. requestId, _ := this.GetInt("requestId", 0)
  38. req.RequestId = uint64(requestId)
  39. text := this.GetString("text")
  40. req.Text = text
  41. resultDetail := this.GetString("resultDetail")
  42. req.ResultDetail = resultDetail
  43. //utils.FileLog.Info("RecTaskCallback, body: " + string(this.Ctx.Input.RequestBody))
  44. //if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  45. // br.Code = 403
  46. // br.Message = "参数解析失败"
  47. // return
  48. //}
  49. utils.FileLog.Info("RecTaskCallback, 1")
  50. // TODO:处理回调结果
  51. apiLog := new(speech_recognition.SpeechRecognitionApiLog)
  52. apiLog.RequestId = strconv.Itoa(int(req.RequestId))
  53. j, e := json.Marshal(req)
  54. if e != nil {
  55. utils.FileLog.Info("RecTaskCallback, 2 " + e.Error())
  56. }
  57. apiLog.RequestResult = string(j)
  58. apiLog.CreateTime = time.Now().Local()
  59. apiLog.ModifyTime = time.Now().Local()
  60. if e := apiLog.Create(); e != nil {
  61. br.Code = 403
  62. br.Message = "获取回调结果失败"
  63. return
  64. }
  65. utils.FileLog.Info("RecTaskCallback, 3")
  66. // TODO:更新语音识别状态及内容
  67. br.Code = 0
  68. br.Message = "success"
  69. }
  70. // Convert
  71. // @Title 语音转换
  72. // @Description 语音转换
  73. // @Param request body speech_recognition.SpeechRecognitionConvertReq true "type json string"
  74. // @Success 200 string "操作成功"
  75. // @router /convert [post]
  76. func (this *SpeechRecognitionController) Convert() {
  77. br := new(models.BaseResponse).Init()
  78. defer func() {
  79. if br.ErrMsg == "" {
  80. br.IsSendEmail = false
  81. }
  82. this.Data["json"] = br
  83. this.ServeJSON()
  84. }()
  85. sysUser := this.SysUser
  86. if sysUser == nil {
  87. br.Msg = "请登录"
  88. br.ErrMsg = "请登录,SysUser Is Empty"
  89. br.Ret = 408
  90. return
  91. }
  92. var req speech_recognition.SpeechRecognitionConvertReq
  93. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  94. br.Msg = "参数有误"
  95. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  96. return
  97. }
  98. if req.MenuId <= 0 {
  99. br.Msg = "请选择目录"
  100. return
  101. }
  102. if len(req.Files) == 0 {
  103. br.Msg = "请上传转写文件"
  104. return
  105. }
  106. for _, r := range req.Files {
  107. if r.FileName == "" && r.ResourceUrl == "" {
  108. br.Msg = "转写文件有误,请检查"
  109. return
  110. }
  111. }
  112. speeches := make([]*speech_recognition.SpeechRecognition, 0)
  113. nowTime := time.Now().Local()
  114. for _, v := range req.Files {
  115. t := new(speech_recognition.SpeechRecognition)
  116. t.FileName = v.FileName
  117. t.ResourceUrl = v.ResourceUrl
  118. t.MenuId = req.MenuId
  119. // TODO:所属目录位置
  120. t.SysUserId = sysUser.AdminId
  121. t.SysUserName = sysUser.RealName
  122. t.State = speech_recognition.SpeechRecognitionStateWait
  123. t.CreateTime = nowTime
  124. t.ModifyTime = nowTime
  125. speeches = append(speeches, t)
  126. }
  127. speechOb := new(speech_recognition.SpeechRecognition)
  128. if e := speechOb.CreateMulti(speeches); e != nil {
  129. br.Msg = "操作失败"
  130. br.ErrMsg = "批量新增转写文件失败, Err: " + e.Error()
  131. return
  132. }
  133. // 批量转写语音
  134. go func() {
  135. services.BatchConvertSpeech(speeches)
  136. }()
  137. br.Ret = 200
  138. br.Success = true
  139. br.Msg = "操作成功"
  140. }
  141. // ConvertList
  142. // @Title 转换列表
  143. // @Description 转换列表
  144. // @Success 200 {object} speech_recognition.SpeechRecognitionItem
  145. // @router /convert_list [get]
  146. func (this *SpeechRecognitionController) ConvertList() {
  147. br := new(models.BaseResponse).Init()
  148. defer func() {
  149. if br.ErrMsg == "" {
  150. br.IsSendEmail = false
  151. }
  152. this.Data["json"] = br
  153. this.ServeJSON()
  154. }()
  155. sysUser := this.SysUser
  156. if sysUser == nil {
  157. br.Msg = "请登录"
  158. br.ErrMsg = "请登录,SysUser Is Empty"
  159. br.Ret = 408
  160. return
  161. }
  162. // 仅取待转换和转换失败的
  163. states := []int{speech_recognition.SpeechRecognitionStateWait, speech_recognition.SpeechRecognitionStateFail}
  164. speechOb := new(speech_recognition.SpeechRecognition)
  165. cond := fmt.Sprintf(` %s = ? AND %s IN (%s)`, speech_recognition.SpeechRecognitionCols.SysUserId, speech_recognition.SpeechRecognitionCols.State, utils.GetOrmInReplace(len(states)))
  166. pars := make([]interface{}, 0)
  167. pars = append(pars, sysUser.AdminId, states)
  168. list, e := speechOb.GetItemsByCondition(cond, pars, []string{}, "")
  169. if e != nil {
  170. br.Msg = "获取失败"
  171. br.ErrMsg = "获取转写文件列表失败, Err: " + e.Error()
  172. return
  173. }
  174. resp := make([]*speech_recognition.SpeechRecognitionItem, 0)
  175. for _, v := range list {
  176. resp = append(resp, speech_recognition.FormatSpeechRecognition2Item(v))
  177. }
  178. br.Data = resp
  179. br.Ret = 200
  180. br.Success = true
  181. br.Msg = "获取成功"
  182. }
  183. // TODO:Save
  184. // @Title 保存内容
  185. // @Description 保存内容
  186. // @Param request body speech_recognition.SpeechRecognitionSaveReq true "type json string"
  187. // @Success 200 string "操作成功"
  188. // @router /save [post]
  189. func (this *SpeechRecognitionController) Save() {
  190. br := new(models.BaseResponse).Init()
  191. defer func() {
  192. if br.ErrMsg == "" {
  193. br.IsSendEmail = false
  194. }
  195. this.Data["json"] = br
  196. this.ServeJSON()
  197. }()
  198. //sysUser := this.SysUser
  199. //if sysUser == nil {
  200. // br.Msg = "请登录"
  201. // br.ErrMsg = "请登录,SysUser Is Empty"
  202. // br.Ret = 408
  203. // return
  204. //}
  205. var req speech_recognition.SpeechRecognitionSaveReq
  206. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  207. br.Msg = "参数有误"
  208. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  209. return
  210. }
  211. conf, e := models.GetBusinessConf()
  212. if e != nil {
  213. br.Msg = "操作失败"
  214. br.ErrMsg = "获取配置失败, Err: " + e.Error()
  215. return
  216. }
  217. var taskReq services.TencentRecTaskReq
  218. taskReq.FileUrl = req.FileName
  219. taskReq.SecretId = conf[models.BusinessConfTencentApiSecretId]
  220. taskReq.SecretKey = conf[models.BusinessConfTencentApiSecretKey]
  221. taskReq.CallbackUrl = conf[models.BusinessConfTencentApiRecTaskCallbackUrl]
  222. taskId, e := services.TencentCreateRecTask(taskReq)
  223. if e != nil {
  224. br.Msg = "操作失败"
  225. br.ErrMsg = fmt.Sprintf("TencentCreateRecTask err: %s", e.Error())
  226. return
  227. }
  228. br.Data = taskId
  229. br.Ret = 200
  230. br.Success = true
  231. br.Msg = "操作成功"
  232. }
  233. // RemoveFile
  234. // @Title (软)删除文件
  235. // @Description (软)删除文件
  236. // @Param request body speech_recognition.SpeechRecognitionRemoveFileReq true "type json string"
  237. // @Success 200 string "操作成功"
  238. // @router /remove_file [post]
  239. func (this *SpeechRecognitionController) RemoveFile() {
  240. br := new(models.BaseResponse).Init()
  241. defer func() {
  242. if br.ErrMsg == "" {
  243. br.IsSendEmail = false
  244. }
  245. this.Data["json"] = br
  246. this.ServeJSON()
  247. }()
  248. sysUser := this.SysUser
  249. if sysUser == nil {
  250. br.Msg = "请登录"
  251. br.ErrMsg = "请登录,SysUser Is Empty"
  252. br.Ret = 408
  253. return
  254. }
  255. var req speech_recognition.SpeechRecognitionRemoveFileReq
  256. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  257. br.Msg = "参数有误"
  258. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  259. return
  260. }
  261. if req.SpeechRecognitionId <= 0 {
  262. br.Msg = "参数有误"
  263. br.ErrMsg = fmt.Sprintf("参数有误, SpeechRecognitionId: %d", req.SpeechRecognitionId)
  264. return
  265. }
  266. speechOb := new(speech_recognition.SpeechRecognition)
  267. speechItem, e := speechOb.GetItemById(req.SpeechRecognitionId)
  268. if e != nil {
  269. if e.Error() == utils.ErrNoRow() {
  270. br.Msg = "转写文件不存在,请刷新页面"
  271. return
  272. }
  273. br.Msg = "操作失败"
  274. br.ErrMsg = "获取转写文件失败, Err: " + e.Error()
  275. return
  276. }
  277. speechItem.FileState = speech_recognition.SpeechRecognitionFileRemoveFlag
  278. speechItem.ModifyTime = time.Now().Local()
  279. updateCols := []string{speech_recognition.SpeechRecognitionCols.FileState, speech_recognition.SpeechRecognitionCols.ModifyTime}
  280. if e = speechItem.Update(updateCols); e != nil {
  281. br.Msg = "操作失败"
  282. br.ErrMsg = "软删除转写文件失败, Err: " + e.Error()
  283. return
  284. }
  285. br.Ret = 200
  286. br.Success = true
  287. br.Msg = "操作成功"
  288. }
  289. // Rename
  290. // @Title 重命名
  291. // @Description 重命名
  292. // @Param request body speech_recognition.SpeechRecognitionRenameReq true "type json string"
  293. // @Success 200 string "操作成功"
  294. // @router /rename [post]
  295. func (this *SpeechRecognitionController) Rename() {
  296. br := new(models.BaseResponse).Init()
  297. defer func() {
  298. if br.ErrMsg == "" {
  299. br.IsSendEmail = false
  300. }
  301. this.Data["json"] = br
  302. this.ServeJSON()
  303. }()
  304. sysUser := this.SysUser
  305. if sysUser == nil {
  306. br.Msg = "请登录"
  307. br.ErrMsg = "请登录,SysUser Is Empty"
  308. br.Ret = 408
  309. return
  310. }
  311. var req speech_recognition.SpeechRecognitionRenameReq
  312. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  313. br.Msg = "参数有误"
  314. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  315. return
  316. }
  317. if req.SpeechRecognitionId <= 0 {
  318. br.Msg = "参数有误"
  319. br.ErrMsg = fmt.Sprintf("参数有误, SpeechRecognitionId: %d", req.SpeechRecognitionId)
  320. return
  321. }
  322. req.FileName = strings.TrimSpace(req.FileName)
  323. if req.FileName == "" {
  324. br.Msg = "请输入文件名称"
  325. return
  326. }
  327. speechOb := new(speech_recognition.SpeechRecognition)
  328. speechItem, e := speechOb.GetItemById(req.SpeechRecognitionId)
  329. if e != nil {
  330. if e.Error() == utils.ErrNoRow() {
  331. br.Msg = "转写文件不存在,请刷新页面"
  332. return
  333. }
  334. br.Msg = "操作失败"
  335. br.ErrMsg = "获取转写文件失败, Err: " + e.Error()
  336. return
  337. }
  338. // 重名校验
  339. {
  340. cond := fmt.Sprintf(` %s = ? AND %s <> ?`, speech_recognition.SpeechRecognitionCols.FileName, speech_recognition.SpeechRecognitionCols.SpeechRecognitionId)
  341. pars := make([]interface{}, 0)
  342. pars = append(pars, req.FileName, req.SpeechRecognitionId)
  343. exists, e := speechOb.GetItemByCondition(cond, pars, "")
  344. if e != nil && e.Error() != utils.ErrNoRow() {
  345. br.Msg = "操作失败"
  346. br.ErrMsg = "获取同名转写文件失败, Err: " + e.Error()
  347. return
  348. }
  349. if exists != nil && exists.SpeechRecognitionId > 0 {
  350. br.Msg = "分类名称已存在,请重新输入"
  351. return
  352. }
  353. }
  354. speechItem.FileName = req.FileName
  355. speechItem.ModifyTime = time.Now().Local()
  356. updateCols := []string{speech_recognition.SpeechRecognitionCols.FileName, speech_recognition.SpeechRecognitionCols.ModifyTime}
  357. if e = speechItem.Update(updateCols); e != nil {
  358. br.Msg = "操作失败"
  359. br.ErrMsg = "转写文件重命名失败, Err: " + e.Error()
  360. return
  361. }
  362. br.Ret = 200
  363. br.Success = true
  364. br.Msg = "操作成功"
  365. }
  366. // Remove
  367. // @Title 删除
  368. // @Description 删除
  369. // @Param request body speech_recognition.SpeechRecognitionRemoveReq true "type json string"
  370. // @Success 200 string "操作成功"
  371. // @router /remove [post]
  372. func (this *SpeechRecognitionController) Remove() {
  373. br := new(models.BaseResponse).Init()
  374. defer func() {
  375. if br.ErrMsg == "" {
  376. br.IsSendEmail = false
  377. }
  378. this.Data["json"] = br
  379. this.ServeJSON()
  380. }()
  381. sysUser := this.SysUser
  382. if sysUser == nil {
  383. br.Msg = "请登录"
  384. br.ErrMsg = "请登录,SysUser Is Empty"
  385. br.Ret = 408
  386. return
  387. }
  388. var req speech_recognition.SpeechRecognitionRemoveReq
  389. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  390. br.Msg = "参数有误"
  391. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  392. return
  393. }
  394. if req.SpeechRecognitionId <= 0 {
  395. br.Msg = "参数有误"
  396. br.ErrMsg = fmt.Sprintf("参数有误, SpeechRecognitionId: %d", req.SpeechRecognitionId)
  397. return
  398. }
  399. speechOb := new(speech_recognition.SpeechRecognition)
  400. speechItem, e := speechOb.GetItemById(req.SpeechRecognitionId)
  401. if e != nil {
  402. if e.Error() == utils.ErrNoRow() {
  403. br.Ret = 200
  404. br.Success = true
  405. br.Msg = "操作成功"
  406. return
  407. }
  408. br.Msg = "操作失败"
  409. br.ErrMsg = "获取转写文件失败, Err: " + e.Error()
  410. return
  411. }
  412. if e = speechItem.Del(); e != nil {
  413. br.Msg = "操作失败"
  414. br.ErrMsg = "删除转写文件失败, Err: " + e.Error()
  415. return
  416. }
  417. // 清除标签关联
  418. go func() {
  419. mappingOb := new(speech_recognition.SpeechRecognitionTagMapping)
  420. _ = mappingOb.ClearMappingBySpeechId(req.SpeechRecognitionId)
  421. }()
  422. br.Ret = 200
  423. br.Success = true
  424. br.Msg = "操作成功"
  425. }
  426. // SaveTag
  427. // @Title 保存标签
  428. // @Description 保存标签
  429. // @Param request body speech_recognition.SpeechRecognitionSaveTagReq true "type json string"
  430. // @Success 200 string "操作成功"
  431. // @router /save_tag [post]
  432. func (this *SpeechRecognitionController) SaveTag() {
  433. br := new(models.BaseResponse).Init()
  434. defer func() {
  435. if br.ErrMsg == "" {
  436. br.IsSendEmail = false
  437. }
  438. this.Data["json"] = br
  439. this.ServeJSON()
  440. }()
  441. sysUser := this.SysUser
  442. if sysUser == nil {
  443. br.Msg = "请登录"
  444. br.ErrMsg = "请登录,SysUser Is Empty"
  445. br.Ret = 408
  446. return
  447. }
  448. var req speech_recognition.SpeechRecognitionSaveTagReq
  449. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  450. br.Msg = "参数有误"
  451. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  452. return
  453. }
  454. if req.SpeechRecognitionId <= 0 {
  455. br.Msg = "参数有误"
  456. br.ErrMsg = fmt.Sprintf("参数有误, SpeechRecognitionId: %d", req.SpeechRecognitionId)
  457. return
  458. }
  459. speechOb := new(speech_recognition.SpeechRecognition)
  460. _, e := speechOb.GetItemById(req.SpeechRecognitionId)
  461. if e != nil {
  462. if e.Error() == utils.ErrNoRow() {
  463. br.Msg = "转写文件不存在,请刷新页面"
  464. return
  465. }
  466. br.Msg = "操作失败"
  467. br.ErrMsg = "获取转写文件失败, Err: " + e.Error()
  468. return
  469. }
  470. // 清除原标签
  471. mappingOb := new(speech_recognition.SpeechRecognitionTagMapping)
  472. if e = mappingOb.ClearMappingBySpeechId(req.SpeechRecognitionId); e != nil {
  473. br.Msg = "操作失败"
  474. br.ErrMsg = "清除转写文件标签失败, Err: " + e.Error()
  475. return
  476. }
  477. // 保存新标签
  478. if len(req.TagIds) > 0 {
  479. mappings := make([]*speech_recognition.SpeechRecognitionTagMapping, 0)
  480. for _, v := range req.TagIds {
  481. if v <= 0 {
  482. continue
  483. }
  484. mappings = append(mappings, &speech_recognition.SpeechRecognitionTagMapping{
  485. TagId: v,
  486. SpeechRecognitionId: req.SpeechRecognitionId,
  487. })
  488. }
  489. if e = mappingOb.CreateMulti(mappings); e != nil {
  490. br.Msg = "操作失败"
  491. br.ErrMsg = "批量新增转写文件标签失败, Err: " + e.Error()
  492. return
  493. }
  494. }
  495. br.Ret = 200
  496. br.Success = true
  497. br.Msg = "操作成功"
  498. }
  499. // TODO:List
  500. // @Title 语音识别列表
  501. // @Description 语音识别列表
  502. // @Param ParentId query int false "父级ID"
  503. // @Success 200 {object} speech_recognition.SpeechRecognitionMenuNodeItem
  504. // @router /list [get]
  505. func (this *SpeechRecognitionController) List() {
  506. br := new(models.BaseResponse).Init()
  507. defer func() {
  508. if br.ErrMsg == "" {
  509. br.IsSendEmail = false
  510. }
  511. this.Data["json"] = br
  512. this.ServeJSON()
  513. }()
  514. sysUser := this.SysUser
  515. if sysUser == nil {
  516. br.Msg = "请登录"
  517. br.ErrMsg = "请登录,SysUser Is Empty"
  518. br.Ret = 408
  519. return
  520. }
  521. // TODO:标签列表
  522. br.Ret = 200
  523. br.Success = true
  524. br.Msg = "获取成功"
  525. }
  526. // TODO:Detail
  527. // @Title 语音识别详情
  528. // @Description 语音识别详情
  529. // @Param SpeechRecognitionId query int true "语音识别ID"
  530. // @Success 200 {object} speech_recognition.SpeechRecognitionMenuNodeItem
  531. // @router /detail [get]
  532. func (this *SpeechRecognitionController) Detail() {
  533. br := new(models.BaseResponse).Init()
  534. defer func() {
  535. if br.ErrMsg == "" {
  536. br.IsSendEmail = false
  537. }
  538. this.Data["json"] = br
  539. this.ServeJSON()
  540. }()
  541. sysUser := this.SysUser
  542. if sysUser == nil {
  543. br.Msg = "请登录"
  544. br.ErrMsg = "请登录,SysUser Is Empty"
  545. br.Ret = 408
  546. return
  547. }
  548. // TODO:标签详情
  549. br.Ret = 200
  550. br.Success = true
  551. br.Msg = "获取成功"
  552. }
  553. // TODO:Move
  554. // @Title 移动语音识别/目录
  555. // @Description 移动标签/目录
  556. // @Param request body speech_recognition.SpeechRecognitionTagRemoveReq true "type json string"
  557. // @Success 200 string "操作成功"
  558. // @router /move [post]
  559. func (this *SpeechRecognitionController) Move() {
  560. br := new(models.BaseResponse).Init()
  561. defer func() {
  562. if br.ErrMsg == "" {
  563. br.IsSendEmail = false
  564. }
  565. this.Data["json"] = br
  566. this.ServeJSON()
  567. }()
  568. sysUser := this.SysUser
  569. if sysUser == nil {
  570. br.Msg = "请登录"
  571. br.ErrMsg = "请登录,SysUser Is Empty"
  572. br.Ret = 408
  573. return
  574. }
  575. // TODO:移动语音识别/目录
  576. br.Ret = 200
  577. br.Success = true
  578. br.Msg = "操作成功"
  579. }
  580. //// TestConvert
  581. //// @Title 转写测试
  582. //// @Description 转写测试
  583. //// @Param request body speech_recognition.SpeechRecognitionSaveReq true "type json string"
  584. //// @Success 200 string "操作成功"
  585. //// @router /test_convert [post]
  586. //func (this *SpeechRecognitionCommonController) TestConvert() {
  587. // br := new(models.BaseResponse).Init()
  588. // defer func() {
  589. // if br.ErrMsg == "" {
  590. // br.IsSendEmail = false
  591. // }
  592. // this.Data["json"] = br
  593. // this.ServeJSON()
  594. // }()
  595. // //sysUser := this.SysUser
  596. // //if sysUser == nil {
  597. // // br.Msg = "请登录"
  598. // // br.ErrMsg = "请登录,SysUser Is Empty"
  599. // // br.Ret = 408
  600. // // return
  601. // //}
  602. // var req speech_recognition.SpeechRecognitionSaveReq
  603. // if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  604. // br.Msg = "参数有误"
  605. // br.ErrMsg = "参数解析失败, Err: " + e.Error()
  606. // return
  607. // }
  608. //
  609. // conf, e := models.GetBusinessConf()
  610. // if e != nil {
  611. // br.Msg = "操作失败"
  612. // br.ErrMsg = "获取配置失败, Err: " + e.Error()
  613. // return
  614. // }
  615. //
  616. // var taskReq services.TencentRecTaskReq
  617. // taskReq.FileUrl = req.FileName
  618. // taskReq.SecretId = conf[models.BusinessConfTencentApiSecretId]
  619. // taskReq.SecretKey = conf[models.BusinessConfTencentApiSecretKey]
  620. // taskReq.CallbackUrl = conf[models.BusinessConfTencentApiRecTaskCallbackUrl]
  621. // taskId, e := services.TencentCreateRecTask(taskReq)
  622. // if e != nil {
  623. // br.Msg = "操作失败"
  624. // br.ErrMsg = fmt.Sprintf("TencentCreateRecTask err: %s", e.Error())
  625. // return
  626. // }
  627. //
  628. // br.Data = taskId
  629. // br.Ret = 200
  630. // br.Success = true
  631. // br.Msg = "操作成功"
  632. //}