main.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package main
  2. import (
  3. util "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/mysql"
  5. "flag"
  6. "fmt"
  7. "github.com/robfig/cron"
  8. asr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/asr/v20190614"
  9. "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
  10. "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
  11. "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
  12. "log"
  13. "time"
  14. )
  15. var (
  16. cfg = new(Config)
  17. TiDb *mysql.Mysql
  18. mode = flag.Int("m", 1, "")
  19. ch chan bool
  20. )
  21. func main() {
  22. flag.Parse()
  23. util.ReadConfig(&cfg)
  24. credential := common.NewCredential(
  25. cfg.KeyId,
  26. cfg.Key,
  27. )
  28. cpf := profile.NewClientProfile()
  29. cpf.HttpProfile.Endpoint = "asr.tencentcloudapi.com"
  30. client, _ = asr.NewClient(credential, "ap-guangzhou", cpf)
  31. defer util.Catch()
  32. request := asr.NewCreateRecTaskRequest()
  33. request.EngineModelType = common.StringPtr("8k_zh")
  34. request.ChannelNum = common.Uint64Ptr(1)
  35. request.SpeakerDiarization = common.Int64Ptr(1)
  36. request.SpeakerNumber = common.Int64Ptr(2)
  37. request.ResTextFormat = common.Uint64Ptr(0)
  38. request.SourceType = common.Uint64Ptr(0)
  39. //request.Url = common.StringPtr(util.ObjToString(data["MonitorFilename"]))
  40. request.Url = common.StringPtr("https://storage.7x24cc.com/storage-server/presigned/ss1/a6-online-work-phone-record/workPhoneRecord/20250224/20250224151935_18595503318_177****8064_dab6d83a-5011-4019-b7c9-2771b5d26a84.mp3")
  41. response, err := client.CreateRecTask(request)
  42. log.Println(response)
  43. if _, ok := err.(*errors.TencentCloudSDKError); ok {
  44. <-ch
  45. fmt.Printf("An API error has returned: %s", err)
  46. return
  47. }
  48. taskId := response.Response.Data.TaskId
  49. requestss := asr.NewDescribeTaskStatusRequest()
  50. log.Println("任务id ", *taskId)
  51. requestss.TaskId = taskId
  52. r, errs := client.DescribeTaskStatus(requestss)
  53. log.Println("查询结果======", r.ToJsonString(), errs)
  54. if _, oks := errs.(*errors.TencentCloudSDKError); oks {
  55. fmt.Printf("An API error has returned: %s", errs)
  56. time.Sleep(time.Duration(cfg.WaitingTime) * time.Second)
  57. }
  58. log.Println("cfg ", r)
  59. //
  60. ch = make(chan bool, cfg.Chan)
  61. //
  62. TiDb = &mysql.Mysql{
  63. Address: cfg.TiDb.Host + ":" + fmt.Sprint(cfg.TiDb.Port),
  64. UserName: cfg.TiDb.User,
  65. PassWord: cfg.TiDb.Password,
  66. DBName: cfg.TiDb.Database,
  67. MaxOpenConns: cfg.TiDb.PollSize,
  68. MaxIdleConns: cfg.TiDb.MaxIdle,
  69. }
  70. TiDb.Init()
  71. if *mode == 1 {
  72. job()
  73. a := cron.New()
  74. a.AddFunc(cfg.CornExp1, func() {
  75. job()
  76. })
  77. a.Start()
  78. select {}
  79. } else if *mode == 2 {
  80. job()
  81. select {}
  82. }
  83. }