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