Почему я получил слишком много пропущенного текста в Google Speech API?

я уже потратил 1 день, чтобы узнать лучшие практики использования Google Speech API.

это моя последняя попытка здесь мы будем использовать онлайн источник чтобы убедиться, что у нас одинаковое аудио. Еще одно требование вам нужно ffmpeg конвертировать mp3 в Google API желаемого формата.

аудио информация:

  • певица: адель
  • песня: в погоне за тротуаром
  • возможный язык: en-GB (происхождение adele) или en-US
  • частота дискретизации: 44100 Гц
  • канал: стерео (2 канала)
  • формат: mp3

что я сделал:

  • используйте оба формата flac или wav
  • используйте обе частоты дискретизации оригинала (44100) или 16000
  • всегда используйте моно (1 канал)
  • используйте оба языка en-GB и en-US

выведите то, что я хочу: получить выравнивание текста. Но это второстепенная цель, потому что сейчас я сосредотачиваюсь на том, почему я получаю так много пропущенного транскрибированного текста.

Заметка: запустить его на bash / cmd

скрипт: базовый синхронный
transcrib.php

<?php
set_time_limit(300); //5min
//google speech php library
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Speech\SpeechClient;
//use Google\Cloud\Storage\StorageClient;
use Google\Cloud\Core\ExponentialBackoff;//json credential path
$google_json_credential = 'cloud-f7cd1957f36a.json';
putenv("GOOGLE_APPLICATION_CREDENTIALS=$google_json_credential");
# Your Google Cloud Platform project ID
$projectId = 'cloud-178108';
//$languageCode = 'en-US'; //not good (too many miss
$languageCode = 'en-GB'; //adele country

$oldFile = "test.mp3";
//flac or wav??
$typeFile = 'wav';
$sampleRate = 16000;

if($typeFile = 'wav'){
$newFile = "test.wav";
$encoding='LINEAR16';
$ffmpeg_command = "ffmpeg -i $oldFile -acodec pcm_s16le -ar $sampleRate -ac 1 $newFile -y";
}else{
$newFile = "test.flac";
$encoding='FLAC';
$ffmpeg_command = "ffmpeg -i $oldFile -c:a flac -ar $sampleRate -ac 1 $newFile -y";
}

//download file
//original audio info: adele - chasing pavements, stereo (2 channel) 44100Hz mp3
$rawFile = file_get_contents("http://www.karaokebuilder.com/pix/toolkit/sam01.mp3");
//save file
file_put_contents($oldFile, $rawFile);

//convert to google cloud format using ffmpeg
shell_exec($ffmpeg_command);

# The audio file's encoding and sample rate
$options = [
'encoding' => $encoding,
'sampleRateHertz' => $sampleRate,
'enableWordTimeOffsets' => true,
];

// Create the speech client
$speech = new SpeechClient([
'projectId' => $projectId,
'languageCode' => $languageCode,
]);

// Make the API call
$results = $speech->recognize(
fopen($newFile, 'r'),
$options
);

// Print the results
foreach ($results as $result) {
$alternative = $result->alternatives()[0];
printf('Transcript: %s' . PHP_EOL, $alternative['transcript']);
print_r($result->alternatives());
}

Результат:

ан-США:

wav: even if it leads nowhere [confidence: 0.86799717]
flac: even if it leads nowhere [confidence: 0.92401636]

** en-GB: **

wav: happy birthday balloons delivered Leeds Norway [confidence: 0.4939031]
flac: happy birthday balloons delivered Leeds Norway [confidence: 0.5762244]

Ожидаемый результат:

Should I give up
Or should I just keep chasing pavements?
Even if it leads nowhere
Or would it be a waste?
Even If I knew my place should I leave it there?
Should I give up
Or should I just keep chasing pavements?
Even if it leads nowhere

если вы увидите результат против ожидаемого, вы поймете, что не только я пропустил так много текста, но и это тоже мисс.

Если честно. Я не знаю, может ли машина (облако Google) четко слышать преобразованный звук или нет. но я пытаюсь отправить лучший конвертированный аудио, как я могу.

я что-то пропустил в своем сценарии? или я не конвертирую аудио правильно?

0

Решение

Рассматривая ваш скрипт, кажется, ваш код был написан точно —https://cloud.google.com/speech/docs/reference/libraries#using_the_client_library.

Кроме того, тот факт, что было выбрано несколько слов, показывает, что облачный Google Speech API получает ваше преобразованное аудио. Хотя Speech API может успешно обрабатывать шумное аудио и распознает более 110 языков и вариантов, я считаю, что эта проблема с обработкой музыкальных файлов связана с ограничениями работы распознавателя речи. Я думаю, что вы должны попробовать простые аудио (не музыкальные) файлы для тестирования.

2

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

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

По вопросам рекламы [email protected]