1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| void Widget::toRequest(QString &urlService,QString &strKey,QString &strText, const QString &filePath){ QUrl url(urlService); QNetworkRequest request(url);
QByteArray strNew; strNew = "Bearer " + strKey.toUtf8(); request.setRawHeader("Authorization",strNew); request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json"); QJsonObject json; json.insert("model","tts-1-hd"); json.insert("voice","alloy"); json.insert("response_format","mp3"); json.insert("speed",1); json.insert("input",strText); QJsonDocument doc(json); QByteArray data = doc.toJson();
QNetworkReply *reply = manager->post(request,data); QObject::connect(reply,&QNetworkReply::finished,this, [this, reply,filePath](){ if(reply->error() == QNetworkReply::NoError){ QFile file(filePath); if(file.open(QIODevice::WriteOnly)){ file.write(reply->readAll()); file.close(); QMessageBox::information(this, "成功", "音频生成成功,文件已保存。"); qDebug()<<"音频生成成功"; }else{ QMessageBox::critical(this, "错误", "文件无法保存。"); } }else{ qDebug()<<"音频生成失败!请检查网络、地址、Key/Token是否出错!!!"; QMessageBox::critical(this, "失败", "音频生成失败!请检查网络、地址、Key/Token是否出错!!!"); } reply->deleteLater(); }); }
|