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