123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- const COS = require('../lib/cos-wx-sdk-v5');
- const config = require('../config');
- const { cos, requestCallback } = require('../tools');
- const asrDao = {
- '提交音频降噪任务 postNoiseReduction': postNoiseReduction,
- '提交人声分离任务 postVoiceSeparate': postVoiceSeparate,
- '提交语音合成任务 postTts': postTts,
- '提交语音识别任务 postSpeechRecognition': postSpeechRecognition,
- '查询语音识别队列 getAsrQueue': getAsrQueue,
- '更新语音识别队列 putAsrQueue': putAsrQueue,
- '查询语音识别开通状态 getAsrBucket': getAsrBucket,
- };
- function postNoiseReduction() {
- var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/jobs';
- var url = 'https://' + host;
- var body = COS.util.json2xml({
- Request: {
- Tag: 'NoiseReduction',
- Input: {
- Object: 'ci/music.mp3', // 文件名,取值为文件在当前存储桶中的完整名称
- },
- Operation: {
- Output: {
- Bucket: config.Bucket, // 输出的存储桶
- Region: config.Region, // 输出的存储桶的地域
- Object: 'ci/out.mp3', // 输出的文件Key
- },
- },
- // QueueId: '', // 任务所在的队列 ID,非必须
- // CallBackFormat: '', // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式,非必须
- // CallBackType: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型,非必须
- // CallBack: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调,非必须
- // CallBackMqConfig: '', // 任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填,非必须
- },
- });
- cos.request(
- {
- Method: 'POST',
- Key: 'jobs',
- Url: url,
- Body: body,
- ContentType: 'application/xml',
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- function postVoiceSeparate() {
- var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/jobs';
- var url = 'https://' + host;
- var body = COS.util.json2xml({
- Request: {
- Tag: 'VoiceSeparate',
- Input: {
- Object: 'ci/music.mp3', // 文件名,取值为文件在当前存储桶中的完整名称
- },
- Operation: {
- // VoiceSeparate: {}, // 指定转码模板参数,非必须
- TemplateId: 't13fca82ad97e84878a22cd81bd2e5652c', // 指定的模板 ID,必须
- // JobLevel: 0, // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0,非必须
- Output: {
- Bucket: config.Bucket, // 输出的存储桶
- Region: config.Region, // 输出的存储桶的地域
- Object: 'ci/out/background.mp3', // 输出的文件Key,背景音结果文件名,不能与 AuObject 同时为空
- AuObject: 'ci/out/audio.mp3',
- },
- },
- // QueueId: '', // 任务所在的队列 ID,非必须
- // CallBackFormat: '', // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式,非必须
- // CallBackType: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型,非必须
- // CallBack: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调,非必须
- // CallBackMqConfig: '', // 任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填,非必须
- },
- });
- cos.request(
- {
- Method: 'POST',
- Key: 'jobs',
- Url: url,
- Body: body,
- ContentType: 'application/xml',
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- function postTts() {
- var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/jobs';
- var url = 'https://' + host;
- var body = COS.util.json2xml({
- Request: {
- Tag: 'Tts',
- Operation: {
- // VoiceSeparate: {}, // 指定转码模板参数,非必须
- TemplateId: 't192931b3564084168a3f50ebfea59acb3', // 指定的模板 ID,必须
- // JobLevel: 0, // 任务优先级,级别限制:0 、1 、2。级别越大任务优先级越高,默认为0,非必须
- TtsConfig: {
- InputType: 'Text',
- Input: '床前明月光,疑是地上霜',
- },
- Output: {
- Bucket: config.Bucket, // 输出的存储桶
- Region: config.Region, // 输出的存储桶的地域
- Object: 'ci/out/tts.mp3', // 输出的文件Key
- },
- },
- // QueueId: '', // 任务所在的队列 ID,非必须
- // CallBackFormat: '', // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式,非必须
- // CallBackType: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型,非必须
- // CallBack: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调,非必须
- // CallBackMqConfig: '', // 任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填,非必须
- },
- });
- cos.request(
- {
- Method: 'POST',
- Key: 'jobs',
- Url: url,
- Body: body,
- ContentType: 'application/xml',
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- function postSpeechRecognition() {
- var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/asr_jobs';
- var url = 'https://' + host;
- var body = COS.util.json2xml({
- Request: {
- Tag: 'SpeechRecognition',
- Input: {
- Object: 'ci/music.mp3', // 文件名,取值为文件在当前存储桶中的完整名称,与Url参数二选一
- // Url: 'http://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/music.mp3', // 病毒文件的链接地址,与Object参数二选一
- },
- Operation: {
- SpeechRecognition: {
- EngineModelType: '16k_zh_video', // 引擎模型类型
- ChannelNum: 1, // 语音声道数
- ResTextFormat: 0, // 识别结果返回形式
- FilterDirty: 1, // 是否过滤脏词(目前支持中文普通话引擎)
- FilterModal: 1, // 是否过语气词(目前支持中文普通话引擎)
- ConvertNumMode: 0, // 是否进行阿拉伯数字智能转换(目前支持中文普通话引擎)
- },
- Output: {
- Bucket: config.Bucket, // 输出的存储桶
- Region: config.Region, // 输出的存储桶的地域
- Object: 'ci/out/SpeechRecognition.mp3', // 输出的文件Key
- },
- },
- // QueueId: '', // 任务所在的队列 ID,非必须
- // CallBackFormat: '', // 任务回调格式,JSON 或 XML,默认 XML,优先级高于队列的回调格式,非必须
- // CallBackType: '', // 任务回调类型,Url 或 TDMQ,默认 Url,优先级高于队列的回调类型,非必须
- // CallBack: '', // 任务回调地址,优先级高于队列的回调地址。设置为 no 时,表示队列的回调地址不产生回调,非必须
- // CallBackMqConfig: '', // 任务回调 TDMQ 配置,当 CallBackType 为 TDMQ 时必填,非必须
- },
- });
- cos.request(
- {
- Method: 'POST',
- Key: 'asr_jobs',
- Url: url,
- Body: body,
- ContentType: 'application/xml',
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- function getAsrQueue() {
- var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/asrqueue';
- var url = 'https://' + host;
- cos.request(
- {
- Method: 'GET',
- Key: 'asrqueue',
- Url: url,
- Query: {
- // queueIds: '', /* 非必须,队列 ID,以“,”符号分割字符串 */
- // state: '', /* 非必须,1=Active,2=Paused */
- // pageNumber: 1, /* 非必须,第几页 */
- // pageSize: 2, /* 非必须,每页个数 */
- },
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- function putAsrQueue() {
- // 任务所在的队列 ID,请使用查询队列(https://cloud.tencent.com/document/product/460/46234)获取或前往万象控制台(https://cloud.tencent.com/document/product/460/46487)在存储桶中查询
- var queueId = 'pcc77499e85c311edb9865254008618d9';
- var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com/asrqueue/' + queueId;
- var url = 'https://' + host;
- var body = COS.util.json2xml({
- Request: {
- Name: 'queue-doc-process-1',
- QueueID: queueId,
- State: 'Paused',
- NotifyConfig: {
- // Url: '',
- // Type: 'Url',
- // Event: '',
- State: 'Off',
- },
- },
- });
- cos.request(
- {
- Method: 'PUT',
- Key: 'asrqueue/' + queueId,
- Url: url,
- Body: body,
- ContentType: 'application/xml',
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- function getAsrBucket() {
- var host = 'ci.' + config.Region + '.myqcloud.com/asrbucket';
- var url = 'https://' + host;
- cos.request(
- {
- Method: 'GET',
- Key: 'asrbucket',
- Url: url,
- Query: {
- // regions: '', /* 非必须,地域信息,以“,”分隔字符串,支持 All、ap-shanghai、ap-beijing */
- // bucketNames: '', /* 非必须,存储桶名称,以“,”分隔,支持多个存储桶,精确搜索 */
- // bucketName: '', /* 非必须,存储桶名称前缀,前缀搜索 */
- // pageNumber: 1, /* 非必须,第几页 */
- // pageSize: 10, /* 非必须,每页个数 */
- },
- },
- function (err, data) {
- console.log(err || data);
- }
- );
- }
- module.exports = asrDao;
|