di-space / yandex-stt
PHP Yandex SpeechKit
1.0.2
2020-02-27 13:26 UTC
Requires
- php: >=7.2
- tcdent/php-restclient: ^0.1
README
该包通过 Yandex SpeechKit 服务实现从短音频文件中语音识别,用于 PHP。
Yandex 设置的限制
- 最大文件大小 — 1 MB
- 最大时长 — 30 秒
- 最大音频通道数 — 1
注意!Yandex SpeechKit 服务是收费的!有关费用详情,请参阅 此页面
安装
Composer
通过 Composer 添加依赖
composer require di-space/yandex-stt
使用
首先,您需要在 Yandex 云中创建一个账户并获取您的 IAM-TOKEN。
有关获取令牌的更多选项,请参阅 SpeechKit 文档
如果您将传递用户令牌而非服务令牌,您还需要提供您的目录标识符(folderID)。
简化版
导入 YandexSTT
use DiSpace\YandexSTT\YandexSTT;
为了方便输入额外的参数,您可以导入 SpeechParamsInterface 接口。
use DiSpace\YandexSTT\Request\SpeechParamsInterface;
从音频文件路径创建请求。结果将返回一个包含识别文本的字符串。注意,如果不设置额外的参数,则期望的文件格式为 OggOpus
YandexSTT::getTextByAudioFilePath('<путь к файлу>', '<IAM-TOKEN>');
额外的参数以数组的形式传递
YandexSTT::getTextByAudioFilePath('<путь к файлу>', '<IAM-TOKEN>', [ 'format' => SpeechRequestInterface::FORMAT_OGG, 'lang' => SpeechRequestInterface::LANG_RU ]);
可用参数
format
- 文件格式。选项 SpeechRequestInterface::FORMAT_OGG 或 SpeechRequestInterface::FORMAT_LPCM
lang
- 语言。选项 SpeechRequestInterface::LANG_RU、SpeechRequestInterface::LANG_EN 和 SpeechRequestInterface::LANG_TR
如果您获得的令牌是为用户账户而非服务账户,那么您需要将您的目录标识符(folderID)作为第四个参数传递。
YandexSTT::getTextByAudioFilePath('<путь к файлу>', '<IAM-TOKEN>', [], '<folderId>');
还可以通过 getTextByAudioDirect 方法直接传递音频文件的内容。参数与 getTextByAudioFilePath 相同
YandexSTT::getTextByAudioDirect('<бинарное содержимое аудио-файла>', '<IAM-TOKEN>', [<массив дополнительных параметров>], ['folderId']);
高级使用方式
Документация будет добавлена позже...