Я использую IBM Watson SDK для 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;
}
}
}