Unity IBM Watson Translation,使用具有正确凭证的示例场景不起作用,但也不会显示任何错误消息

问题描述 投票:-1回答:1

我正在使用IBM Watson SDK for Unity(2019.2.11f1)建立一个简单的翻译场景。首先,我尝试了来自ibm watson现场翻译的示例代码,其中的翻译场景已经存在。基本上,您只需要添加IAMKey和我所做的URL。当我开始(播放)场景时,没有任何反应。我没有收到任何错误消息,该错误消息告诉我密钥和URL是正确的,但仍然没有任何反应。

任何人都面临类似的问题,并且知道我做错了什么,或者如果我缺少什么吗?

我尝试过的脚本之一是:

namespace LangaugeTranslatorDemo
{
    public class LanguageTranslatorSample : MonoBehaviour
    {
        #region PLEASE SET THESE VARIABLES IN THE INSPECTOR
        [Space(10)]
        [Tooltip("The service URL (optional). This defaults to \"https://gateway.watsonplatform.net/langauge-translator/api\"")]
        [SerializeField]
        private string serviceUrl;
        [Tooltip("Text field to display the results of translation.")]
        public Text ResultsField;
        [Header("IAM Authentication")]
        [Tooltip("The IAM apikey.")]
        [SerializeField]
        private string iamApikey;
        [Header("Parameters")]
        // https://cloud.ibm.com/apidocs/language-translator#list-models
        [Tooltip("The translation model to use. See https://cloud.ibm.com/apidocs/language-translator#list-models.")]
        [SerializeField]
        private string translationModel;
        #endregion

        private LanguageTranslatorService languageTranslator;

        void Start()
        {
            if (string.IsNullOrEmpty(iamApikey))
                throw new IBMException("Please set the Language Translator iamApikey in the inspector.");
            if (string.IsNullOrEmpty(translationModel))
                throw new IBMException("Please set the translationModel in the inspector.");
            //  Start coroutine to create service
            StartCoroutine(CreateService());
        }

        private IEnumerator CreateService()
        {
            //  Create authenticator
            Authenticator languageTranslatorAuthenticator = new IamAuthenticator(
                apikey: iamApikey,
                url: serviceUrl
                );

            //  Yield here until we have IAM token data
            while (!languageTranslatorAuthenticator.CanAuthenticate())
                yield return null;

            //  Instantiate service
            languageTranslator = new LanguageTranslatorService(
                versionDate: "2019-09-16", 
                authenticator: languageTranslatorAuthenticator
                );
        }

        //  Call this method from ExampleStreaming
        public void Translate(string text)
        {
            //  Array of text to translate
            List<string> translateText = new List<string>();
            translateText.Add(text);

            //  Call to the service
            languageTranslator.Translate(OnTranslate, translateText, translationModel);
            Translate("Hello");
        }

        //  OnTranslate handler
        private void OnTranslate(DetailedResponse<TranslationResult> response, IBMError error)
        {
            //  Populate text field with TranslationOutput
            ResultsField.text = response.Result.Translations[0]._Translation;
        }
    }
}
unity3d ibm-watson machine-translation
1个回答
0
投票

您需要使用apikey和服务url来进行语音转文本和语言翻译。您可以在检查器的SpeechToTextSample和LangaugeTranslatorSample中添加凭据。

© www.soinside.com 2019 - 2024. All rights reserved.