![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
я понял так - должно получится ???
вот что то похожее https://cloud.yandex.ru/docs/speechkit/tts/request
точно )
На сайте IBM есть подробная документация.
Она вам в помощь. Но к сожалению у IBM нет русскоязычного голоса.
На сайте IBM есть подробная документация.
Она вам в помощь. Но к сожалению у IBM нет русскоязычного голоса.
и в этой документации все кристально ясно. И curl, и postman легко настраиваются и получают корректный аудио поток, но только не WebRequest! ) В этом-то и проблема, обсуждаемая с пятой страницы этой темы )))))
Аутентификация в сервисах Watson
Последнее обновление: 2019-12-12Контроль в GitHub: открыть документацию | Редактировать тему
Вы используете IBM® Cloud Identity and Access Management (IAM) для отправки аутентифицированных запросов к общедоступным сервисам IBM Watson ™. С помощью политик доступа IAM вы можете назначить доступ более чем одному ресурсу с одного ключа. Кроме того, пользователь, идентификатор службы и экземпляр службы могут содержать несколько ключей API.
В надстройках IBM Cloud Pak для данных используется другой механизм аутентификации. Для получения дополнительной информации см. Документацию для вашего дополнения.
полномочия
Для проверки подлинности службы через ее API передайте свои учетные данные в API. Вы можете передать токен на предъявителя в заголовке авторизации или в ключе API.
Выполните аутентификацию с помощью токена IAM.
Токены IAM являются временными учетными данными, действительными в течение 60 минут. Когда токен истекает, вы генерируете новый. Токены могут быть полезны для временного доступа к ресурсам. Дополнительную информацию смотрите в разделе Генерация токена IBM Cloud IAM с использованием ключа API.
Выполните аутентификацию с помощью ключа API IBM Cloud, ключа API идентификатора службы или ключа API для конкретной службы.
Ключи API просты в использовании и не имеют срока действия. Любой человек с действительным ключом может получить доступ к ресурсу. Вы можете создавать отдельные ключи API для разных пользователей, разных приложений или для поддержки сценариев ротации ключей. Вы можете отозвать ключи API из консоли, не мешая другим ключам API или пользователю.
Для тестирования и разработки вы можете напрямую передать ключ API. Однако для производственного использования, если вы не используете Watson SDK, используйте токен IAM. Когда вы передаете ключ API, служба ищет сведения о ключе API, что может повлиять на производительность. Дополнительную информацию смотрите в разделе Вызов API-интерфейсов службы IBM Cloud.
SDK Watson поддерживают оба метода. Для получения дополнительной информации см. Раздел «Аутентификация» справочника по API для вашей службы и SDK.
Пользователи премиальных планов также могут использовать IBM® Key Protect для IBM Cloud ™ для управления доступом к данным. Для получения дополнительной информации см. Защита конфиденциальной информации в службе Watson.
О ключах API
Сервисы Watson поддерживают три типа ключей API:
Ключи IBM Cloud API связаны с идентификацией пользователя. Только пользователь, связанный с ключом, может удалить его. Один и тот же ключ API IBM Cloud можно использовать для доступа к различным службам. Дополнительную информацию о работе с ключами API IBM Cloud смотрите в разделе Управление ключами API пользователя.
Ключи API идентификатора службы
Идентификаторы сервисов обеспечивают доступ к вашим службам IBM Cloud с помощью приложений, размещенных как внутри, так и вне IBM Cloud. Ключам API, связанным с идентификаторами служб, предоставляется доступ, связанный с этим идентификатором службы. Для получения дополнительной информации о ключах идентификатора службы см. Раздел Управление ключами API идентификатора службы.
API ключевые лучшие практики
Храните свои ключи API в безопасности, чтобы уменьшить вероятность публичного раскрытия учетных данных, которые могут поставить под угрозу вашу учетную запись и приложения. Чтобы обеспечить безопасность ключей API, следуйте этим рекомендациям.
Назначьте наиболее ограничивающую роль службы, которая подходит для необходимого вам уровня доступа.
Например, назначьте роль службы Reader для вызовов из приложения в методы GET API. Эта роль имеет доступ только для чтения, поэтому не может создавать или редактировать ресурсы.
Не вставляйте ключ API непосредственно в код.
Ключи API, встроенные в код, могут быть доступны вашим пользователям. Вместо того чтобы встраивать ключи API в код, сохраняйте их либо в переменных среды, либо в файлах за пределами вашей системы управления исходным кодом.
Не храните ключ API в файлах внутри системы контроля исходного кода вашего приложения.
Если вы храните ключи API в файлах, храните файлы вне исходного кода вашего приложения. Эта практика важна, если вы используете публичную систему управления исходным кодом, такую как GitHub.
Восстановите или поверните ключи API.
Периодически создавайте новые ключи или вращайте их. И не забудьте удалить ключи, которые вы больше не используете.
Цитата:
Выполните аутентификацию с помощью ключа API IBM Cloud, ключа API идентификатора службы или ключа API для конкретной службы
говориться о выборе нужно ключа для аутентификации. То есть, эта процедура не может быть проигнорирована.
Вопрос к ТС - откуда Вы брали ключ?
Судя по всему, проблема только в авторизации. Этот сервис очень строго относится к использованию своих служб. В его политике масса нюансов и халявный подход работать скорее всего не будет. Можно написать им в службу поддержки и спросить, как правильно авторизироваться.
Peter, спасибо!
Дело не в IBM. Все корректно работает с curl, postman. Авторизация выполняется только для одного сервиса, выполняется с помощью apikey и keyID.
Проблема в WebRequest и никакие дополнительные ссылки на сайты поставщиков TTS здесь не помогут, к сожалению.
Поможет рабочий пример получения с помощью WebRequest бинарной информации с подобного Microsoft TTS, Google TTS, Yandex TTS сервиса.
Фишка в корретном написании синтаксиса для WebRequest. В справке MQL5 есть только один пример работы WebRequest и это и есть камень преткновения! )))
Видите, как много на сайте IBM примеров для различных языков сценариев использования? Curl, Java, Python
MQL5 там не значится и приходится гадать жидком осадочке напитка отдаленно напоминающего какао
Вот на этом сайте - я загрузил текстовый файл - и получил .wav файл
как организовать это автоматически - это вопрос!?https://audio.online-convert.com/convert-to-wav
только английский
Peter, спасибо!
Дело не в IBM. Все корректно работает с curl, postman. Авторизация выполняется только для одного сервиса, выполняется с помощью apikey и keyID.
Проблема в WebRequest и никакие дополнительные ссылки на сайты поставщиков TTS здесь не помогут, к сожалению.
Поможет рабочий пример получения с помощью WebRequest бинарной информации с подобного Microsoft TTS, Google TTS, Yandex TTS сервиса.
Фишка в корретном написании синтаксиса для WebRequest. В справке MQL5 есть только один пример работы WebRequest и это и есть камень преткновения! )))
Видите, как много на сайте IBM примеров для различных языков сценариев использования? Curl, Java, Python
MQL5 там не значится и приходится гадать жидком осадочке напитка отдаленно напоминающего какао
Дело в том, что MQL5 - язык для разработки проприетарных приложений, подлежащих продаже. Общая мировая политика по отношению к использованию бесплатного контента или служб в платном ПО разнится. У меня есть подозрение, что неспроста вебреквест не загружает с IBM и постоянно выскакивает ошибка 401.
1. Либо, синтаксис запроса или API-ключ неверен.
2. Либо, запрос с платформы МТ5 используемой для разработки коммерческих продуктов не поддерживается.
3. Либо функция WebRequest работает специфическим образом и внутри ограничена для подобного использования.
4. Либо, еще какая то проблема...
Дело в том, что MQL5 - язык для разработки проприетарных приложений, подлежащих продаже. Общая мировая политика по отношению к использованию бесплатного контента или служб в платном ПО разнится. У меня есть подозрение, что неспроста вебреквест не загружает с IBM и постоянно выскакивает ошибка 401.
1. Либо, синтаксис запроса или API-ключ неверен.
2. Либо, запрос с платформы МТ5 используемой для разработки коммерческих продуктов не поддерживается.
3. Либо функция WebRequest работает специфическим образом и внутри ограничена для подобного использования.
4. Либо, еще какая то проблема...
еще какая-то проблема. Как говорят у нас в среде экспертов: "там какая-то неисправность" ))
Чуть выше, я подробно написал как WebRequest замирает, но тем не менее получает поток. Поток попадая в файл оказывается битым. Возможно я неверно его помещаю в файл, но скорее всего в момент "подвисания" char массив оказывается заполненным посторонней информацией.
Вот с этим сейчас и надо бы разобраться