PHP 调用 SiliconFlow 语音生成 API 的脚本,用于将文本转换为 MP3 格式的语音文件

脚本概述

PHP 调用 SiliconFlow 语音生成 API 的脚本,用于将文本转换为 MP3 格式的语音文件。

代码结构

依赖引入

php 复制代码
require_once 'vendor/autoload.php';
use OpenAI\Client;
  • 使用 Composer 的自动加载机制
  • 引入 OpenAI PHP 客户端库

文件路径处理

php 复制代码
$speechFilePath = __DIR__ . '/siliconcloud-generated-speech.mp3';
  • __DIR__ 获取当前脚本所在目录
  • 生成的语音文件将保存在同一目录下

OpenAI 客户端初始化

php 复制代码
$client = new Client([
    'api_key' => 'sk-xxznqkrjqarsmwpeqfcbfylwmrlxysfzydxpowjxovlkxavp',
    'base_uri' => 'https://api.siliconflow.cn/v1'
]);
  • 使用 SiliconFlow 提供的 API 密钥
  • 指定自定义的 API 基础 URL

语音生成核心逻辑

语音生成请求

php 复制代码
$response = $client->audio()->speech()->create([
    'model' => 'FunAudioLLM/CosyVoice2-0.5B',
    'voice' => 'FunAudioLLM/CosyVoice2-0.5B:alex',
    'input' => "你能用高兴的情感说吗?<|endofprompt|>易到互联...",
    'response_format' => 'mp3'
]);

关键参数:

  • model:选择语音模型(CosyVoice2-0.5B)
  • voice:指定特定音色(alex)
  • input:待转换的文本内容
  • response_format:输出音频格式

错误处理与文件保存

php 复制代码
try {
    file_put_contents($speechFilePath, $response);
    echo "语音生成成功,已保存到 $speechFilePath\n";
} catch (Exception $e) {
    echo "语音生成失败: " . $e->getMessage() . "\n";
}
  • 使用 try-catch 捕获可能的异常
  • file_put_contents() 将生成的语音保存到文件
  • 提供成功或失败的控制台输出

使用场景

  • 文本转语音
  • 多语言语音生成
  • 个性化语音定制

技术特点

  • 支持多种语音模型
  • 灵活的音色选择
  • 简单的错误处理机制

注意事项

  1. 需要预先安装 Composer 和 OpenAI PHP 客户端库
  2. API 密钥是敏感信息,不应硬编码
  3. 注意 API 使用限制和计费

快来体验 siliconflow 图像描述服务:https://cloud.siliconflow.cn/i/vnCCfVaQ

快来体验 siliconflow 图像描述服务:https://cloud.siliconflow.cn/i/vnCCfVaQ

快来体验 siliconflow 图像描述服务:https://cloud.siliconflow.cn/i/vnCCfVaQ

相关推荐
IT乐手1 小时前
android 下载管理工具类
android
2501_915106322 小时前
App 怎么上架 iOS?从准备资料到开心上架(Appuploader)免 Mac 上传的完整实战流程指南
android·macos·ios·小程序·uni-app·iphone·webview
科技峰行者3 小时前
安卓16提前发布能否改写移动生态格局
android
蒲公英少年带我飞3 小时前
Android NDK 编译 protobuf
android
沐怡旸3 小时前
【底层机制】ART虚拟机深度解析:Android运行时的架构革命
android·面试
小禾青青4 小时前
uniapp安卓打包遇到报错:Uncaught SyntaxError: Invalid regular expression: /[\p{L}\p{N}]/
android·uni-app
studyForMokey4 小时前
【Kotlin内联函数】
android·开发语言·kotlin
我也要当昏君6 小时前
5.3 【2012统考真题】
开发语言·智能路由器·php
2501_915921437 小时前
iOS 抓不到包怎么办?工程化排查与替代抓包方案(抓包/HTTPS/Charles代理/tcpdump)
android·ios·小程序·https·uni-app·iphone·tcpdump
星光一影7 小时前
打车/网约车、代驾、顺风车/拼车、货运、租车等多种出行服务的一站式解决方案
mysql·微信小程序·php·uniapp·html5·web app