Google 语音中的日语文本错误 api php
Japanese text error in Google speech api php
Google 当我将 'languageCode' => 'en-US'
与英语音频文件一起使用时,语音 api 对我来说工作正常。但是当对日语音频文件使用 '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 Client Libraries 并遵循 Google 中的示例。
Google 语音 API 在 $results
中正确返回日语响应。默认编码类型为 UTF-8。它清楚地写在文档中。 Google\Cloud\Language\LanguageClient
问题出在 foreach
中的 echo
,它破坏了日文字符。在我的例子中,我实际上不需要回显而不是使用 $results
。所以现在它对我来说工作正常。
也许,如果有人想使用 echo
来显示结果,下面的链接会有所帮助。
- PHP Japanese echo string becomes question marks
- How to display Japanese characters on a php page?
谢谢。
Google 当我将 'languageCode' => 'en-US'
与英语音频文件一起使用时,语音 api 对我来说工作正常。但是当对日语音频文件使用 '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 Client Libraries 并遵循 Google 中的示例。
Google 语音 API 在 $results
中正确返回日语响应。默认编码类型为 UTF-8。它清楚地写在文档中。 Google\Cloud\Language\LanguageClient
问题出在 foreach
中的 echo
,它破坏了日文字符。在我的例子中,我实际上不需要回显而不是使用 $results
。所以现在它对我来说工作正常。
也许,如果有人想使用 echo
来显示结果,下面的链接会有所帮助。
- PHP Japanese echo string becomes question marks
- How to display Japanese characters on a php page?
谢谢。