Skip to content

Translator 翻译 ​

TIP

支持 15+ 种语言互译,边说边译

快速使用 ​

typescript
import { createTranslator, XfyunTranslator } from 'xfyun-sdk';

// 文本翻译(静态方法)
const result = await XfyunTranslator.translateText({
  text: '你好',
  from: 'cn',
  to: 'en',
  appId: 'YOUR_APP_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
});

console.log(result); // 'hello'

// 语音翻译(实例方法)
const translator = createTranslator({
  appId: 'YOUR_APP_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
  type: 'asr', // 语音翻译模式
});

translator.on('result', (text) => {
  console.log('翻译结果:', text);
});

translator.start();

构造函数 ​

typescript
createTranslator(options: XfyunTranslatorOptions): Translator

参数 ​

参数类型默认值必填说明
appIdstring—✅讯飞应用 ID
apiKeystring—✅讯飞 API Key
apiSecretstring—✅讯飞 API Secret
type'asr' | 'text''asr'❌翻译类型
fromSourceLanguage'cn'❌源语言
toTargetLanguage'en'❌目标语言
domainstring'iner'❌语音翻译场景
autoStartbooleanfalse❌自动开始
vadEosnumber5000❌VAD 超时 (ms)

支持的语言 ​

源语言 (SourceLanguage) ​

代码语言
cn中文
en英文
ja日语
ko韩语
fr法语
es西班牙语
it意大利语
de德语
pt葡萄牙语
vi越南语
id印尼语
ms马来西亚语
ru俄语
ar阿拉伯语
hi印地语
th泰语

目标语言 (TargetLanguage) ​

支持所有源语言作为目标语言。

方法 ​

start() ​

开始翻译。

typescript
translator.start(text?: string): Promise<void>

参数:

参数类型说明
textstring翻译文本(文本翻译模式必填,语音翻译模式可省略)

stop() ​

停止翻译。

typescript
translator.stop(): void

destroy() ​

销毁实例,释放资源。

typescript
translator.destroy(): void

getState() ​

获取当前状态。

typescript
translator.getState(): TranslatorState

返回值:'idle' \| 'connecting' \| 'connected' \| 'translating' \| 'stopped' \| 'error'

static translateText() ​

静态方法,文本翻译(无需实例化)。

typescript
XfyunTranslator.translateText(options: {
  text: string;
  from: SourceLanguage;
  to: TargetLanguage;
  appId: string;
  apiKey: string;
  apiSecret: string;
  domain?: string;
}): Promise<TranslationResult>

返回值:

typescript
interface TranslationResult {
  text: string;        // 翻译结果
  from: string;        // 源语言
  to: string;          // 目标语言
  confidence?: number; // 置信度
}

事件 ​

result ​

翻译结果更新时触发。

typescript
translator.on('result', (text: string, isFinal: boolean) => {
  console.log('翻译结果:', text, '是否最终:', isFinal);
});

start ​

翻译开始时触发。

typescript
translator.on('start', () => {
  console.log('翻译开始');
});

end ​

翻译结束时触发。

typescript
translator.on('end', () => {
  console.log('翻译结束');
});

error ​

发生错误时触发。

typescript
translator.on('error', (error: XfyunError) => {
  console.error('翻译错误:', error);
});

类型定义 ​

XfyunTranslatorOptions ​

typescript
interface XfyunTranslatorOptions {
  appId: string;
  apiKey: string;
  apiSecret: string;
  type?: 'asr' | 'text';
  from?: SourceLanguage;
  to?: TargetLanguage;
  domain?: string;
  autoStart?: boolean;
  vadEos?: number;
  sampleRate?: number;
  logLevel?: 'debug' | 'info' | 'warn' | 'error';
}

TranslatorState ​

typescript
type TranslatorState = 
  | 'idle'
  | 'connecting'
  | 'connected'
  | 'translating'
  | 'stopped'
  | 'error';

TranslationResult ​

typescript
interface TranslationResult {
  text: string;
  from: string;
  to: string;
  confidence?: number;
}

示例 ​

文本翻译 ​

typescript
import { XfyunTranslator } from 'xfyun-sdk';

const result = await XfyunTranslator.translateText({
  text: '你好,世界',
  from: 'cn',
  to: 'en',
  appId: 'YOUR_APP_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
});

console.log(result.text); // 'Hello, world'

语音翻译(边说边译) ​

typescript
import { createTranslator } from 'xfyun-sdk';

const translator = createTranslator({
  appId: 'YOUR_APP_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
  type: 'asr',
  from: 'cn',
  to: 'en',
});

translator.on('result', (text, isFinal) => {
  console.log('翻译结果:', text);
  if (isFinal) {
    console.log('最终翻译:', text);
  }
});

translator.on('error', (error) => {
  console.error('翻译错误:', error);
});

async function startTranslation() {
  const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
  translator.start();
}

中日翻译 ​

typescript
const translator = createTranslator({
  appId: 'YOUR_APP_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
  from: 'cn',
  to: 'ja',
});

translator.on('result', (text) => {
  console.log('日语翻译:', text);
});

translator.start();

英法翻译 ​

typescript
const translator = createTranslator({
  appId: 'YOUR_APP_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
  from: 'en',
  to: 'fr',
});

translator.on('result', (text) => {
  console.log('法语翻译:', text);
});

translator.start();

常见问题 ​

Details
翻译结果为空?
  1. 检查源文本是否有效
  2. 确认语言代码正确(如 'cn'、'en'、'ja')
  3. 增加超时时间配置
Details
语音翻译延迟高?
  1. 检查网络连接
  2. 减少背景噪音
  3. 使用合适的 vadEos 设置

下一步 ​

MIT Licensed