📜  TSSN教程(1)

📅  最后修改于: 2023-12-03 15:35:23.013000             🧑  作者: Mango

TSSN教程

TSSN(Tencent Speech Service Network)是腾讯云推出的语音识别及语音合成API,支持多种语言、多种场景,能够满足开发者的各种应用需求。本教程将为您介绍TSSN语音识别及语音合成API的使用方法和注意事项。

TSSN语音识别
基本概念

TSSN语音识别是指将输入的语音转换成文字的过程,可用于语音助手、语音输入、视频会议等场景。TSSN语音识别支持多种语言,例如中文、英文、日语、韩语等。

接口调用方式

TSSN语音识别API提供了HTTP POST请求的方式进行调用,使用时需提供相关参数,包括接口地址、请求参数及请求头。

import requests

url = 'https://tssn.tencentcloudapi.com/openapi'
data = {
  'Action': 'SentenceRecognition',
  'Version': '2019-09-19',
  'ProjectId': 0,
  'SubServiceType': 2,
  'EngSerViceType': '8k_zh',
  'SourceType': 0,
  'Url': 'http://your.wav',
  'Data': '',
  'VoiceFormat': 'wav',
  'UsrAudioKey': '',
  'NeedVad': 1,
  'SpeakerDiarization': 0,
  'SpeakerNumber': 0,
  'HotwordId': '',
  'FilterDirty': 0,
  'FilterModal': 0,
  'FilterPunc': 0,
  'ConvertNumMode': 0,
  'WordInfo': 0
}
headers = {
    'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, json=data)

需要注意的是,在请求头中需设置Content-Type为application/json,同时请求参数需要经过签名以确保接口请求安全。

参数说明
  1. Action(必选):请求操作的名称。在TSSN语音识别API中,固定为SentenceRecognition。
  2. Version(必选):API版本。目前为2019-09-19。
  3. ProjectId:项目ID。如果您在控制台中创建了项目,则需将项目ID设置为对应的值。否则,请将其设置为0。
  4. SubServiceType(必选):服务类型。对于TSSN语音识别API,固定为2。
  5. EngSerViceType(必选):语音类型。目前支持的语音类型有8k_zh(中文普通话8k)和16k_zh(中文普通话16k)等。
  6. SourceType(必选):音频源类型。目前支持的音频源类型有0(URL方式)、1(BASE64编码)、2(为录音文件形式上传)
  7. Url:音频URL地址。当SourceType为0时,需提供音频的URL地址。
  8. Data:音频数据。当SourceType为1时,需将音频文件的BASE64编码填入该字段。当SourceType为2时,需将音频文件转成二进制的格式,填入该字段。
  9. VoiceFormat(必选):音频格式。目前仅支持wav格式。
  10. UsrAudioKey:用户自定义的上传标识,用于在用户的应用系统内标识唯一的音频文件。该参数仅对调用方用户自身负责,腾讯云不会对该参数进行校验、存储和使用。
  11. NeedVad:是否需要静音检测。如果您需要以句子为单位进行语音识别,则需要开启该选项。
  12. SpeakerDiarization:是否开启说话人分离。如果您需要将不同说话人的语音划分到不同的文本块中,则需要开启该选项。
  13. SpeakerNumber:说话人数量。您可以设置不同的说话人数量,以达到不同的说话人分离效果。
  14. HotwordId:热词模板ID。如果您需要在音频中检索某个指定的热词,则需要设置该选项。
  15. FilterDirty:是否过滤脏话。如果您需要将脏话过滤掉,则需要开启该选项。
  16. FilterModal:是否过滤语气词。如果您需要将语气词过滤掉,则需要开启该选项。
  17. FilterPunc:是否过滤标点符号。如果您需要将标点符号过滤掉,则需要开启该选项。
  18. ConvertNumMode:数字转换方式。如果您需要将数字转为中文大写或阿拉伯数字,则需要设置该选项。
  19. WordInfo:是否返回词级别结果。如果您需要得到每个词的结果,则需要开启该选项。
返回结果

TSSN语音识别API的返回结果是一个JSON格式的字符串,其中包含了识别结果及相关信息。返回结果中包含了音频的格式、音频时长、语音的结果等信息。以下是一个样例返回结果:

{
    "Response": { 
        "RequestId": "e1111f48-94af-4a76-ac98-9f1eefc12d04",
        "AudioDuration": 3.52,
        "ResultList": [
            {
                "AlternativeList": [
                    {
                        "WordList": [
                            {
                                "Mbtm": 0,
                                "Word": "这",
                                "BeginTime": 0,
                                "EndTime": 280
                            },
                            {
                                "Mbtm": 1,
                                "Word": "是",
                                "BeginTime": 280,
                                "EndTime": 480
                            },
                            {
                                "Mbtm": 2,
                                "Word": "一个",
                                "BeginTime": 480,
                                "EndTime": 760
                            },
                            {
                                "Mbtm": 3,
                                "Word": "测试",
                                "BeginTime": 760,
                                "EndTime": 1030
                            },
                            {
                                "Mbtm": 4,
                                "Word": "语音",
                                "BeginTime": 1030,
                                "EndTime": 1300
                            },
                            {
                                "Mbtm": 5,
                                "Word": "文字",
                                "BeginTime": 1300,
                                "EndTime": 1570
                            },
                            {
                                "Mbtm": 6,
                                "Word": "转换",
                                "BeginTime": 1570,
                                "EndTime": 1870
                            },
                            {
                                "Mbtm": 7,
                                "Word": "的",
                                "BeginTime": 1870,
                                "EndTime": 2010
                            },
                            {
                                "Mbtm": 8,
                                "Word": "例",
                                "BeginTime": 2010,
                                "EndTime": 2190
                            },
                            {
                                "Mbtm": 9,
                                "Word": "子",
                                "BeginTime": 2190,
                                "EndTime": 2370
                            }
                        ],
                        "Confidence": 1
                    }
                ],
                "AudioUrl": ""
            }
        ],
        "Progress": {
            "CurrFrg": 32,
            "Mbtm": 9,
            "MbtmPer": 100,
            "Status": 3
        }
    }
}

需要注意的是,返回的识别结果可能存在瑕疵。因此,在实际开发中,您需要结合您的应用场景和识别效果进行进一步的调整。

TSSN语音合成
基本概念

TSSN语音合成是将文字转化为语音的过程,可用于语音播报、电话客服等场景。TSSN语音合成支持多种语言、多种音色,使用方便快捷。

接口调用方式

TSSN语音合成API同样提供了HTTP POST请求的方式进行调用,使用时需提供相关参数,包括接口地址、请求参数及请求头。

以下是一个Python调用示例:

import requests

url = 'https://tts.tencentcloudapi.com'
data = {
    "Action": "TextToVoice",
    "Version": "2019-08-23",
    "Text": "欢迎使用腾讯云语音合成服务",
    "SessionId": "HelloTTS",
    "ModelType": 1,
    "Codec": "mp3",
    "Speed": 0,
    "Volume": 0,
    "ProjectId": 0
}
headers = {
    'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, json=data)

同样,使用TSSN语音合成API也需要进行签名以确保请求安全。

参数说明
  1. Action(必选):请求操作的名称。在TSSN语音合成API中,固定为TextToVoice。
  2. Version(必选):API版本。目前为2019-08-23。
  3. Text(必选):需要转化为语音的文字。
  4. SessionId(必选):会话ID。每个会话ID可生成一个语音文件,用于唯一标识不同的语音文件。
  5. ModelType(必选):模型类型。目前支持的模型类型有1(基础模型)和2(精品模型)。
  6. Codec(必选):输出格式。目前支持的输出格式有mp3、pcm等。
  7. Speed:语速。该值越大则语速越快,最大值为500,最小值为-500。
  8. Volume:音量。该值越大则音量越大,最大值为10,最小值为0。
  9. ProjectId:项目ID。如果您在控制台中创建了项目,则需将项目ID设置为对应的值。否则,请将其设置为0。
返回结果

TSSN语音合成API的返回结果同样是一个JSON格式的字符串,其中包含了语音文件的URL。您可以将该URL下载下来,或者直接使用URL进行播放。

以下是一个样例返回结果:

{
    "Response": {
        "Success": true,
        "RequestId": "26088588-f184-46ee-bb51-5473f3affc8d",
        "AudioUrl": "https://testbucket-125000000.cos.ap-guangzhou.myqcloud.com/tts/e4650278-2658-4372-bb20-4d4f4c8dc34d.mp3?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDgqwKM3P8tL5a5zSFxBZDCfQphGWLIUDG%26q-sign-time%3D2353164803%3B2353165223%26q-key-time%3D2353164803%3B2353165223%26q-header-list%3Dhost%26q-url-param-list%3D%26q-signature%3Df9b9be6b0fdf680d04e8c8e0a43dd0f572d6e49b"
    }
}

在实际开发中,您可以根据需要将语音文件下载下来,进行后续的操作。

注意事项

在使用TSSN语音识别及语音合成API时,请注意以下几点:

  1. 请求参数需按照要求填写,并进行签名。
  2. 部分参数可根据实际需要进行调整。
  3. 由于语音识别及语音合成的模型并非100%准确,因此您需要结合实际情况对识别结果进行微调。
  4. 涉及到安全问题时,请务必保护好您的API密钥,以免被恶意攻击。