跳到主要内容

腾讯云语音识别工具

概述

腾讯云语音识别工具是一个基于腾讯云语音识别API的智能语音转文字工具。它支持多种音频格式和语言,能够将音频文件或音频数据流转换为准确的文字内容,广泛应用于语音转录、智能客服、会议记录等场景。

核心特性

  • 多格式支持: 支持WAV、MP3、PCM、M4A、AAC等主流音频格式
  • 多语言识别: 支持中文、英文、日文、韩文等9种主要语言
  • 高精度识别: 基于腾讯云先进的语音识别技术
  • 灵活输入: 支持base64编码、Buffer数据、文件路径等多种输入方式
  • 安全可靠: 内置数据验证和错误处理机制
  • 详细报告: 提供完整的识别结果和执行统计信息

重要限制说明

⚠️ 使用前请注意以下限制

  • 音频时长: 最大支持60秒音频(腾讯云API限制)
  • 文件大小: 最大支持5MB音频文件
  • 识别模式: 仅支持一句话识别,不支持实时转录
  • 网络要求: 需要稳定的网络连接访问腾讯云API

配置参数

腾讯云凭据配置

参数类型默认值必填说明
secretIdstring-腾讯云API密钥ID(以AKID开头)
secretKeystring-腾讯云API密钥Key(最少20位)
regionstring'ap-beijing'服务区域

识别参数配置

参数类型默认值说明
engineModelTypestring'16k_zh'引擎模型类型,详见支持的语言列表
voiceFormatnumber1音频格式:1-wav, 2-speex, 3-silk, 4-mp3, 6-m4a
usrAudioKeystring'audio'用户音频数据标识
needvadnumber1是否开启静音检测:0-关闭,1-开启
hotwordIdstring''热词表ID(可选)

支持的语言和格式

支持的语言

语言引擎模型类型说明
中文普通话16k_zh支持中文普通话识别
英文16k_en支持英文识别
中英文混合16k_zh_en支持中英文混合识别
日文16k_ja支持日文识别
韩文16k_ko支持韩文识别
西班牙文16k_es支持西班牙文识别
法文16k_fr支持法文识别
意大利文16k_it支持意大利文识别
德文16k_de支持德文识别

支持的音频格式

格式voiceFormat文件扩展名说明
WAV1.wav无损音频格式,推荐使用
MP34.mp3常用压缩音频格式
M4A6.m4aApple音频格式
PCM-.pcm原始音频数据
AAC-.aac高级音频编码

输入参数

基本参数

参数类型必填说明
audioDatastring/Buffer音频数据(base64编码或Buffer)
languagestring识别语言,默认为'zh'(中文)
formatstring音频格式,默认为'wav'

高级参数

参数类型说明
customConfigobject自定义配置覆盖默认设置
hotwordIdstring热词表ID,提高特定词汇识别准确率
needvadboolean是否开启静音检测

输出结果

成功响应结构

{
"success": true,
"text": "识别出的文字内容",
"audioInfo": {
"format": "wav",
"language": "zh",
"estimatedDuration": 5.2,
"dataSize": 83200
},
"requestInfo": {
"requestId": "12345678-1234-1234-1234-123456789012",
"engineModelType": "16k_zh",
"voiceFormat": 1,
"region": "ap-beijing"
},
"executionInfo": {
"executedAt": "2024-01-15T10:30:00.000Z",
"executionTime": 1250,
"apiCallTime": 1100
}
}

字段说明

识别结果 (Recognition Result)

  • success: 识别是否成功
  • text: 识别出的文字内容

音频信息 (Audio Info)

  • format: 音频格式
  • language: 识别语言
  • estimatedDuration: 预估音频时长(秒)
  • dataSize: 音频数据大小(字节)

请求信息 (Request Info)

  • requestId: 请求唯一标识
  • engineModelType: 使用的引擎模型
  • voiceFormat: 音频格式代码
  • region: 服务区域

执行信息 (Execution Info)

  • executedAt: 执行时间
  • executionTime: 总执行时间(毫秒)
  • apiCallTime: API调用时间(毫秒)

错误响应结构

{
"success": false,
"error": "音频时长65.5秒超过60秒限制",
"errorCode": "AUDIO_TOO_LONG",
"audioInfo": {
"format": "wav",
"language": "zh",
"estimatedDuration": 65.5,
"dataSize": 2097152
},
"executionInfo": {
"executedAt": "2024-01-15T10:30:00.000Z",
"executionTime": 50,
"failed": true
}
}

使用示例

1. 基础语音识别

最简单的使用方式,识别中文语音:

{
"id": "speech-recognition",
"type": "tencent-speech",
"config": {
"secretId": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"secretKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"region": "ap-beijing"
},
"inputs": {
"audioData": "UklGRigAAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQQAAAAAAA==",
"language": "zh",
"format": "wav"
}
}

2. 多语言识别

识别英文语音:

{
"id": "english-recognition",
"type": "tencent-speech",
"config": {
"secretId": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"secretKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"engineModelType": "16k_en"
},
"inputs": {
"audioData": "{{base64_audio_data}}",
"language": "en",
"format": "mp3"
}
}

3. 文件上传识别

处理上传的音频文件:

{
"workflow": [
{
"id": "file-upload",
"type": "file-input",
"config": {
"acceptedTypes": ["audio/wav", "audio/mp3", "audio/m4a"]
}
},
{
"id": "speech-recognition",
"type": "tencent-speech",
"config": {
"secretId": "{{TENCENT_SECRET_ID}}",
"secretKey": "{{TENCENT_SECRET_KEY}}"
},
"inputs": {
"audioData": "{{file-upload.content}}",
"format": "{{file-upload.format}}"
}
}
]
}

4. 批量处理

批量处理多个音频文件:

{
"workflow": [
{
"id": "batch-recognition",
"type": "js-executor",
"inputs": {
"audioFiles": [
{"name": "audio1.wav", "data": "base64_data_1"},
{"name": "audio2.mp3", "data": "base64_data_2"},
{"name": "audio3.m4a", "data": "base64_data_3"}
],
"code": `
let results = [];
for (let file of inputs.audioFiles) {
try {
const result = await callOperator('tencent-speech', {
audioData: file.data,
format: file.name.split('.').pop()
});
results.push({
filename: file.name,
text: result.text,
success: true
});
} catch (error) {
results.push({
filename: file.name,
error: error.message,
success: false
});
}
}
return { results };
`
}
}
]
}

5. 中英混合识别

处理包含中英文混合的音频:

{
"id": "mixed-language-recognition",
"type": "tencent-speech",
"config": {
"secretId": "{{TENCENT_SECRET_ID}}",
"secretKey": "{{TENCENT_SECRET_KEY}}",
"engineModelType": "16k_zh_en"
},
"inputs": {
"audioData": "{{mixed_audio_data}}",
"language": "zh_en",
"format": "wav"
}
}

6. 热词优化识别

使用热词表提高专业术语识别准确率:

{
"id": "hotword-recognition",
"type": "tencent-speech",
"config": {
"secretId": "{{TENCENT_SECRET_ID}}",
"secretKey": "{{TENCENT_SECRET_KEY}}",
"hotwordId": "your_hotword_table_id"
},
"inputs": {
"audioData": "{{professional_audio_data}}",
"language": "zh",
"format": "wav"
}
}

环境配置

1. 获取腾讯云密钥

  1. 登录 腾讯云控制台
  2. 进入 访问管理 > API密钥管理
  3. 点击 新建密钥 创建新的API密钥
  4. 记录 SecretIdSecretKey

2. 环境变量配置

在环境变量中设置密钥信息:

# .env 文件
TENCENT_SECRET_ID=AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TENCENT_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TENCENT_REGION=ap-beijing

3. 权限配置

确保API密钥具有语音识别服务权限:

{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"asr:SentenceRecognition"
],
"resource": "*"
}
]
}

工作流集成

在工作流中使用

  1. 添加语音识别节点

    • 从工具库中选择"腾讯云语音识别"
    • 配置腾讯云凭据和识别参数
  2. 连接数据源

    • 将音频输入节点的输出连接到语音识别节点
    • 支持文件上传、URL下载等多种数据源
  3. 后续处理

    • 将识别结果传递给文本处理节点
    • 或用于内容分析、情感分析等场景

与其他工具配合

{
"workflow": [
{
"id": "audio-input",
"type": "file-input",
"config": {
"acceptedTypes": ["audio/*"]
}
},
{
"id": "speech-to-text",
"type": "tencent-speech",
"config": {
"secretId": "{{TENCENT_SECRET_ID}}",
"secretKey": "{{TENCENT_SECRET_KEY}}"
},
"inputs": {
"audioData": "{{audio-input.content}}",
"format": "{{audio-input.format}}"
}
},
{
"id": "text-analysis",
"type": "text-analyzer",
"inputs": {
"text": "{{speech-to-text.text}}"
}
},
{
"id": "save-result",
"type": "database-save",
"inputs": {
"table": "transcriptions",
"data": {
"original_audio": "{{audio-input.filename}}",
"transcribed_text": "{{speech-to-text.text}}",
"confidence": "{{text-analysis.confidence}}",
"created_at": "{{now}}"
}
}
}
]
}

性能优化

最佳实践

  1. 音频质量优化

    • 使用16kHz采样率的音频文件
    • 保持音频清晰,避免背景噪音
    • 控制音频时长在60秒以内
  2. 格式选择

    • 优先使用WAV格式获得最佳识别效果
    • MP3格式在保持质量的同时减小文件大小
    • 避免过度压缩的音频格式
  3. 批量处理优化

    • 对于大量音频文件,考虑分批处理
    • 使用并发控制避免API调用频率限制
    • 实现重试机制处理临时网络问题

性能指标

  • 识别准确率: 在清晰音频条件下可达95%以上
  • 处理速度: 通常在1-3秒内完成识别
  • 支持时长: 最大60秒音频
  • 文件大小: 最大5MB音频文件

错误处理

常见错误类型

错误代码错误信息原因解决方案
INVALID_CREDENTIALS凭据无效SecretId或SecretKey错误检查腾讯云API密钥
AUDIO_TOO_LONG音频时长超限音频超过60秒分割音频或使用其他识别方案
FILE_TOO_LARGE文件过大音频文件超过5MB压缩音频或降低音质
UNSUPPORTED_FORMAT格式不支持音频格式不在支持列表中转换为支持的格式
NETWORK_ERROR网络错误网络连接问题检查网络连接和防火墙设置

错误响应处理

{
"workflow": [
{
"id": "speech-recognition",
"type": "tencent-speech",
"config": {
"secretId": "{{TENCENT_SECRET_ID}}",
"secretKey": "{{TENCENT_SECRET_KEY}}"
},
"inputs": {
"audioData": "{{audio_data}}"
},
"onError": {
"continue": true,
"defaultValue": {
"success": false,
"text": "",
"error": "语音识别失败,请检查音频格式和网络连接"
}
}
},
{
"id": "handle-result",
"type": "js-executor",
"inputs": {
"result": "{{speech-recognition}}",
"code": `
if (inputs.result.success) {
return {
status: 'success',
message: '识别成功',
text: inputs.result.text
};
} else {
return {
status: 'error',
message: inputs.result.error || '识别失败',
text: ''
};
}
`
}
}
]
}

故障排除

调试技巧

  1. 检查音频数据

    // 验证base64音频数据
    const isValidBase64 = (str) => {
    try {
    return btoa(atob(str)) === str;
    } catch (err) {
    return false;
    }
    };
  2. 测试API连接

    # 使用curl测试腾讯云API连接
    curl -X POST https://asr.tencentcloudapi.com/ \
    -H "Content-Type: application/json" \
    -d '{"Action":"SentenceRecognition","Version":"2018-08-08"}'
  3. 音频格式检查

    // 检查音频文件头部信息
    const checkAudioFormat = (buffer) => {
    const header = buffer.slice(0, 12).toString('ascii');
    if (header.startsWith('RIFF') && header.includes('WAVE')) {
    return 'wav';
    } else if (buffer[0] === 0xFF && (buffer[1] & 0xE0) === 0xE0) {
    return 'mp3';
    }
    return 'unknown';
    };

常见问题

Q: 为什么我的音频识别准确率很低? A: 检查音频质量,确保采样率为16kHz,音频清晰无噪音,说话清楚。

Q: 如何处理超过60秒的长音频? A: 需要将长音频分割成60秒以内的片段分别识别,然后合并结果。

Q: 支持实时语音识别吗? A: 当前版本仅支持一句话识别,不支持实时流式识别。

Q: 如何提高专业术语的识别准确率? A: 可以创建热词表并在配置中指定hotwordId参数。

版本信息

  • 当前版本: 1.1.0
  • 兼容性: Node.js 14+
  • 依赖项: tencentcloud-sdk-nodejs
  • 更新日志:
    • v1.1.0: 修正功能限制,移除不支持的实时转录功能
    • v1.0.0: 初始版本发布

相关资源