跳至主要內容

OpenAI

Mastra 的 OpenAIVoice 類別使用 OpenAI 模型提供文字轉語音和語音轉文字功能。

使用範例
使用範例 的直接連結

import { OpenAIVoice } from '@mastra/voice-openai'

// Initialize with default configuration using environment variables
const voice = new OpenAIVoice()

// Or initialize with specific configuration
const voiceWithConfig = new OpenAIVoice({
speechModel: {
name: 'tts-1-hd',
apiKey: 'your-openai-api-key',
},
listeningModel: {
name: 'whisper-1',
apiKey: 'your-openai-api-key',
},
speaker: 'alloy', // Default voice
})

// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?', {
speaker: 'nova', // Override default voice
speed: 1.2, // Adjust speech speed
})

// Convert speech to text
const text = await voice.listen(audioStream, {
filetype: 'mp3',
})

設定
設定 的直接連結

建構函數選項
建構函數選項 的直接連結

speechModel?:

OpenAIConfig
= { name: 'tts-1' }
文字轉語音合成的設定。
OpenAIConfig

name?:

'tts-1' | 'tts-1-hd' | 'whisper-1'
模型名稱。如需更高質素的音訊,請使用 'tts-1-hd'。

apiKey?:

string
OpenAI API 金鑰。如未提供,則使用 OPENAI_API_KEY 環境變數。

listeningModel?:

OpenAIConfig
= { name: 'whisper-1' }
語音轉文字辨識的設定。
OpenAIConfig

name?:

'tts-1' | 'tts-1-hd' | 'whisper-1'
模型名稱。如需更高質素的音訊,請使用 'tts-1-hd'。

apiKey?:

string
OpenAI API 金鑰。如未提供,則使用 OPENAI_API_KEY 環境變數。

speaker?:

OpenAIVoiceId
= 'alloy'
語音合成的預設聲音 ID。

方法
方法 的直接連結

speak()
speak 的直接連結

使用 OpenAI 的文字轉語音模型將文字轉換成語音。

input:

string | NodeJS.ReadableStream
要轉換成語音的文字或文字串流。

options?:

Options
設定選項。
Options

speaker?:

OpenAIVoiceId
用於語音合成的聲音 ID。

speed?:

number
語速倍數。

傳回:Promise<NodeJS.ReadableStream>

listen()
listen 的直接連結

使用 OpenAI 的 Whisper 模型轉錄音訊。

audioStream:

NodeJS.ReadableStream
要轉錄的音訊串流。

options?:

Options
設定選項。
Options

filetype?:

string
輸入串流的音訊格式。

傳回:Promise<string>

getSpeakers()
getspeakers 的直接連結

傳回可用聲音選項的陣列,其中每個節點包含:

voiceId:

string
聲音的唯一識別碼

注意事項
注意事項 的直接連結

  • 可透過建構函數選項或 OPENAI_API_KEY 環境變數提供 API 金鑰
  • tts-1-hd 模型提供質素更高的音訊,但處理時間可能較長
  • 語音辨識支援多種音訊格式,包括 mp3、wav 和 webm