Unity3d Unity IBM Watson Translation使用具有正确凭据的示例场景不起作用,但也不会显示任何错误消息
我正在使用IBM Watson SDK for Unity(2019.2.11f1)创建一个简单的传输场景。首先,我尝试了ibm watson live translation中的示例代码,其中的翻译场景已经存在。基本上,你只需要添加IAMKey和我做的URL。当我开始(播放)这个场景时,什么也没发生。我没有得到任何错误消息,这表明我的关键和网址是正确的,但仍然没有发生任何事情 有没有人面临类似的问题,知道我做错了什么,或者我遗漏了什么 im尝试的脚本之一是:Unity3d Unity IBM Watson Translation使用具有正确凭据的示例场景不起作用,但也不会显示任何错误消息,unity3d,ibm-watson,machine-translation,Unity3d,Ibm Watson,Machine Translation,我正在使用IBM Watson SDK for Unity(2019.2.11f1)创建一个简单的传输场景。首先,我尝试了ibm watson live translation中的示例代码,其中的翻译场景已经存在。基本上,你只需要添加IAMKey和我做的URL。当我开始(播放)这个场景时,什么也没发生。我没有得到任何错误消息,这表明我的关键和网址是正确的,但仍然没有发生任何事情 有没有人面临类似的问题,知道我做错了什么,或者我遗漏了什么 im尝试的脚本之一是: namespace Langaug
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;
}
}
}
namespace LangaugeTranslatorDemo
{
公共类语言翻译示例:MonoBehavior
{
#请在INSPECTOR中设置这些变量
[空间(10)]
[工具提示(“服务URL(可选)。默认为\”https://gateway.watsonplatform.net/langauge-translator/api\"")]
[序列化字段]
私有字符串serviceUrl;
[工具提示(“显示翻译结果的文本字段”)]
公共文本结果字段;
[标题(“IAM身份验证”)]
[工具提示(“IAM apikey”)]
[序列化字段]
私有字符串iamApikey;
[标题(“参数”)]
// https://cloud.ibm.com/apidocs/language-translator#list-模型
[工具提示(“要使用的转换模型。请参阅https://cloud.ibm.com/apidocs/language-translator#list-模型。”)]
[序列化字段]
私有字符串转换模型;
#端区
私人语言翻译服务语言翻译;
void Start()
{
if(string.IsNullOrEmpty(iamApikey))
抛出新的IBMException(“请在inspector中设置语言转换器iamApikey”);
if(string.IsNullOrEmpty(translationModel))
抛出新的IBMException(“请在inspector中设置translationModel。”);
//启动协同程序以创建服务
Start例程(CreateService());
}
私有IEnumerator CreateService()
{
//创建验证器
验证器语言TranslatorAuthenticator=新IAM验证器(
apikey:iamApikey,
url:serviceUrl
);
//在获得IAM令牌数据之前,在此处屈服
而(!languageTranslatorAuthenticator.CanAuthenticate())
收益返回空;
//实例化服务
languageTranslator=新语言Translator服务(
版本日期:“2019-09-16”,
身份验证器:语言Translator身份验证器
);
}
//从ExampleStreaming调用此方法
公共无效翻译(字符串文本)
{
//要翻译的文本数组
List translateText=新列表();
添加(文本);
//呼叫服务
languageTranslator.Translate(OnTranslate、translateText、translationModel);
翻译(“你好”);
}
//反变换板处理器
私有无效OnTranslate(详细响应,IBMError错误)
{
//用TranslationOutput填充文本字段
ResultsField.text=response.Result.Translations[0]。\u Translation;
}
}
}
您需要一个API密钥和服务url,用于语音到文本和语言翻译。您可以在inspector中的SpeechToTextSample和LangaugeTranslatorSample中添加凭据
在帖子中提供代码片段有助于更快地回答问题。