跳至主要內容

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
語音的唯一識別碼

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

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