我正在使用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;
}
}
}
您需要使用apikey和服务url来进行语音转文本和语言翻译。您可以在检查器的SpeechToTextSample和LangaugeTranslatorSample中添加凭据。