Amazon транскрибирует & quot; Операция не найдена: StartTranscriptionJob & quot;

  • Windows 7 Pro
  • PHP 7.0.2
  • AWS расшифровывает API 2017-10-26

Привет,
Я пытаюсь использовать Amazon Web Services для транскрибирования записей с IVR (пожалуйста, оставьте свое имя после тонального сигнала и т. Д.) С помощью PHP. Я могу загрузить записи в свое ведро AWS (так что что-то правильно), но когда я пытаюсь запустить задание на транскрипцию, я получаю следующую ошибку:
«Операция не найдена: StartTranscriptionJob»

Я могу заставить транскрипцию работать, используя AWS CLI, поэтому моя система, кажется, настроена нормально. В Интернете не так много об этой проблеме, я сделал все обычные поиски в Google, и информация не очень полезна, например:

https://docs.aws.amazon.com/transcribe/latest/dg/API_StartTranscriptionJob.html
https://docs.aws.amazon.com/sdk-for-go/api/service/transcribeservice/#TranscribeService.StartTranscriptionJob

Вот мой код, 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();

?>

0

Решение

Вы пытаетесь использовать S3Client чтобы начать транскрипцию:

$result = $s3->StartTranscriptionJob

Согласно сообщению об ошибке, S3 не поддерживает StartTranscriptionJob операция. Вам необходимо настроить и использовать TranscribeServiceClient,

Вы связались с документами AWS SDK для Go, но ваш код — PHP. Соответствующие документы для PHP:

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector