Ошибка японского текста в Google speech api Переполнение стека

API Google Speech работает нормально, когда я использую 'languageCode' => 'en-US' с английским аудиофайлом. Но при использовании 'languageCode' => 'ja-JP' с японским аудиофайлом, возвращающий битый текст "Transcription: ã‚‚ã—ã‚‚ã—è² ã‘ホンダã—ã¦ã‚‚ã—ã‚‚ã—"

Пример кода от Google:

# Includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';

# Imports the Google Cloud client library
use Google\Cloud\Speech\SpeechClient;

# Your Google Cloud Platform project ID
$projectId = 'YOUR_PROJECT_ID';

# Instantiates a client
$speech = new SpeechClient([
'projectId' => $projectId,
'languageCode' => 'en-US',
]);

# The name of the audio file to transcribe
$fileName = __DIR__ . '/resources/audio.raw';

# The audio file's encoding and sample rate
$options = [
'encoding' => 'LINEAR16',
'sampleRateHertz' => 16000,
];

# Detects speech in the audio file
$results = $speech->recognize(fopen($fileName, 'r'), $options);

foreach ($results[0]->alternatives() as $alternative) {
echo 'Transcription: ' . $alternative['transcript'] . PHP_EOL;
}

Я проверил
Клиентские библиотеки Cloud Speech API и последовал примеру от Google.

0

Решение

Google Speech API правильно возвращает ответ на японском языке $results, Тип кодировки по умолчанию — UTF-8. Это ясно написано в документации. Google \ Cloud \ Language \ LanguageClient

Проблема была echo в foreach который ломает японский характер. В моем случае мне на самом деле не нужно эхо, а не использовать $results, Так что теперь у меня все работает нормально.

Возможно, если кто-то захочет использовать echo Чтобы показать результат, следующие ссылки могут быть полезны.

  1. PHP японское эхо-строка становится вопросительными знаками
  2. Как отобразить японские символы на странице php?

Благодарю.

0

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

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

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