masterarrow / laravel-elevenlabs-client
ElevenLabs API 的包装客户端
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.7
- illuminate/support: ^10.13
Requires (Dev)
- pestphp/pest: ^2.6
- vimeo/psalm: ^5.12
This package is auto-updated.
Last update: 2024-09-24 14:03:55 UTC
README
这是一个用作ElevenLabs语音生成API包装器的Laravel包。它提供了一个易于使用的接口,用于根据提供的内容生成语音。
安装
您可以通过Composer安装此包。运行以下命令
composer require masterarrow/elevenlabs-api-client
接下来,您需要将服务提供者在您的Laravel应用程序的config/app.php文件中添加。打开文件并定位到'providers'数组。将以下行添加到数组中
ElevenLabsWrapper\ElevenLabsClient\Providers\ElevenLabsClientServiceProvider::class,
用法
要开始使用,请确保设置您的ElevenLabs API密钥。您可以通过在.env文件中添加以下密钥来完成此操作
ELEVEN_API_KEY=your-api-key
然后,您可以通过访问ElevenLabsClient实例来使用此包。例如,您可以将以下路由添加到您的web.php或api.php文件中,以测试库是否正常工作
<?php use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider and all of them will | be assigned to the "web" middleware group. Make something great! | */ Route::get('/test_elevenlabsclient', function() { $elevenLabsClient = app()->make(\ElevenLabsWrapper\ElevenLabsClient\ElevenLabsClient::class); return $elevenLabsClient->voices()->getAll(); });
语音类
命名空间
ElevenLabsWrapper\ElevenLabsClient\Voice
类描述
Voice
类是ElevenLabsWrapper\ElevenLabsClient\Voice
命名空间的一部分。它实现了VoiceInterface
。
getAll()
检索所有可用的语音。
getVoice(string $voice_id)
返回特定语音的元数据。
defaultSettings()
获取语音的默认设置。
voiceSettings(string $voice_id)
addVoice(string $name, ?string $description, string $files, ?string $labels = "American")
将新的语音添加到您的VoiceLab语音集合中。
参数
$name
(string): 语音的名称。$description
(string|null): 语音的描述。$files
(string): 语音的文件路径。$labels
(string|null, default: "American"): 语音的标签。
editVoice(string $voice_id, string $name, ?string $description, ?string $files, ?string $labels = "American")
编辑VoiceLab中语音集合中的语音。
参数
$voice_id
(string): 语音的ID。$name
(string): 语音的新名称。$description
(string|null): 语音的新描述。$files
(string|null): 语音的新文件路径。$labels
(string|null, default: "American"): 语音的新标签。
deleteVoice(string $voice_id)
从VoiceLab中语音集合中删除特定语音。
参数
$voice_id
(string): 语音的ID。
语音合成类
命名空间
ElevenLabsWrapper\ElevenLabsClient\TextToSpeech
类描述
TextToSpeech
类是ElevenLabsWrapper\ElevenLabsClient\TextToSpeech
命名空间的一部分。它实现了TextToSpeechInterface
。
generate(string $content, string $voice_id , ?bool $optimize_latency, ?string $model_id, ?array $voice_settings = [])
generate_stream(string $content, string $voice_id , ?bool $optimize_latency, ?string $model_id , ?array $voice_settings = [])
历史记录
命名空间
ElevenLabsWrapper\ElevenLabsClient\History
类描述
History
类是ElevenLabsWrapper\ElevenLabsClient\History
命名空间的一部分。它实现了HistoryInterface
。
getHistory()
返回有关您所有生成音频的元数据。
getHistoryItem(string $history_item_id)
根据其ID返回历史条目的信息。
参数
$history_item_id
(string): 历史条目的ID。
getHistoryItemAudio(string $history_item_id, string $fileName)
返回历史条目的音频。
参数
$history_item_id
(string): 历史条目的ID。$fileName
(string): 音频文件的所需文件名。
deleteHistoryItem(string $history_item_id)
根据其ID删除历史条目。
参数
$history_item_id
(string): 历史条目的ID。
downloadHistory(array $history_items, string $filename)
下载一个或多个历史条目。如果提供一个历史条目ID,则返回单个音频文件。如果提供多个历史条目ID,则将历史条目打包到.zip文件中。
参数
$history_items
(数组): 历史项目ID数组。$filename
(字符串): 下载文件的期望文件名。
Models
类
可用方法
getModels()
获取可用模型列表。
返回类型: 数组
User
类
命名空间
ElevenLabsWrapper\ElevenLabsClient\User
类描述
User
类是 ElevenLabsWrapper\ElevenLabsClient\User
命名空间的一部分。它实现了 UserInterface
。
可用方法
getUserInfo()
获取用户信息。
返回类型: 数组
描述: 此方法检索当前用户的信息。它向 user
端点发送 GET 请求,并将解码后的响应数据作为数组返回。
getUserSubscription()
获取用户订阅的扩展信息。
返回类型: 数组
描述: 此方法检索当前用户订阅的扩展信息。它向 user/subscription
端点发送 GET 请求,并将解码后的响应数据作为数组返回。
请自由地在您的 Laravel 应用程序中使用这些方法与 ElevenLabs 语音生成 API 交互。