当前位置: 首页 > 知识库问答 >
问题:

亚马逊转录“未找到操作:StartTranscriptionJob”

欧渝
2023-03-14
    null

https://docs.aws.amazon.com/transcranbe/latest/dg/api_starttranscranptionjob.html https://docs.aws.amazon.com/sdk-for-go/api/service/transcranbeService/#transcranbeService.starttranscranptionjob

下面是我的代码,StartTranscriptionJob在最后:

<?php
require 'aws\aws-autoloader.php';
chdir('asr');
$logFile = 'asr.log';
$log = "\n\n".date("d/m/Y H:i:s");

###################
# get the recording
###################

$service   = htmlspecialchars($_GET["service"]);
$recording = htmlspecialchars($_GET["recording"]);

$ftp_server = "ftp.****";
$ftp_username = "****";
$ftp_userpass = "****";
$ftp_conn = ftp_connect($ftp_server,7721) or die("Could not connect to $ftp_server");
ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
ftp_chdir($ftp_conn,'Recordings');
ftp_pasv($ftp_conn, true);
ftp_chdir($ftp_conn,$service);
ftp_get ($ftp_conn , $recording , $recording, FTP_BINARY);
ftp_close($ftp_conn);

######################
# Upload to AWS bucket
######################

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$credentials = new Aws\Credentials\Credentials('****', '****');
$bucket = 'asr-bucket-test';
$keyname = $recording;

$s3 = new S3Client([
   'profile' => 'default',
   'version' => 'latest',
   'region'  => 'us-west-2',
   'credentials' => $credentials
]);

try {
   // Upload data.
   $result = $s3->putObject([
       'Bucket' => $bucket,
       'Key'    => $keyname,
       'SourceFile'  => '\xampp\htdocs\****.co.uk\asr\\'.$recording,
       'ACL'    => 'public-read'
   ]);

   // Print the URL to the object.
   $log.= "\n".$result['ObjectURL'] . PHP_EOL;
} catch (S3Exception $e) {
   $log.= "\n".$e->getMessage() . PHP_EOL;
}

############
# Transcribe
############

try {
  $result = $s3->StartTranscriptionJob([
  'LanguageCode' => 'en-US', // REQUIRED
  'Media' => [ 
    'MediaFileUri' => 'https://s3-us-west-2.amazonaws.com/asr-bucket-test/'.$recording, 
  ],
  'MediaFormat' => 'wav', // REQUIRED
  'OutputBucketName' => $bucket,
  'Settings' => [
  #  'ChannelIdentification' => true || false,
    'MaxSpeakerLabels' => 5,
  #  'ShowSpeakerLabels' => true || false,
  #  'VocabularyName' => $recording
  ],
  'TranscriptionJobName' => 'test_job', // REQUIRED
  ]);
  $log.="\n".$result;
} catch (Exception $e) {
  $log.="\nError: Cannot start transcripion job " . $e->getMessage();
}

file_put_contents($logFile, $log,FILE_APPEND);
exit();

?>

共有1个答案

吴镜
2023-03-14

您正在尝试使用S3Client开始转录:

$result = $s3->StartTranscriptionJob

根据错误消息,S3不支持StartTranscriptionJob操作。您需要设置并使用TranscripbeServiceClient

您为Go链接到了AWS SDK文档,但您的代码是PHP。PHP相关文档:

    null
 类似资料:
  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 你知道它是否有可能实现吗?

  • 我目前正在尝试亚马逊转录服务,我想知道是否应该在将音频文件发送到亚马逊转录之前对其进行预处理。我在文档中找不到任何东西,所以我假设它们没有应用任何预处理。

  • 我能够从EC2实例连接到VPC中的ElastiCache Redis实例。但我想知道是否有办法连接到Amazon EC2实例之外的ElastiCache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例。 当前在我的本地设置中尝试时: 我只在一段时间后才会暂停。

  • 我想问alexa各种各样的问题,最后我想让它问“你还有什么想知道的吗?”当我说“是”(yes是工作建议)时,它应该根据我的意图来建议我。就像我在