ailia_speech  1.3.0.0
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
ailiaSpeech.AiliaSpeechTranslateModel クラス
ailiaSpeech.AiliaSpeechTranslateModel の継承関係図
Inheritance graph
[凡例]
ailiaSpeech.AiliaSpeechTranslateModel 連携図
Collaboration graph
[凡例]

公開メンバ関数

bool IsError ()
 エラーが発生したか確認します。 [詳解]
 
string GetErrorDetail ()
 エラーの詳細を取得します。 [詳解]
 
int GetEnvironmentId (bool is_gpu)
 実行環境を取得します。 [詳解]
 
string GetEnvironmentName ()
 実行環境の名称を取得します。 [詳解]
 
bool Open (string encoder_path, string decoder_path, string source_path, string target_path, int type, int env_id, int memory_mode)
 インスタンスを作成します。 [詳解]
 
virtual void Close ()
 インスタンスを破棄します。 [詳解]
 
virtual void Dispose ()
 リソースを解放します。 [詳解]
 
string Translate (string input_text)
 翻訳を実行します。 [詳解]
 

限定公開メンバ関数

virtual void Dispose (bool disposing)
 

関数詳解

◆ Close()

virtual void ailiaSpeech.AiliaSpeechTranslateModel.Close ( )
inlinevirtual

インスタンスを破棄します。

インスタンスを破棄し、初期化します。

203  {
204  if (net != IntPtr.Zero){
205  AiliaSpeech.ailiaSpeechDestroy(net);
206  net = IntPtr.Zero;
207  }
208  }

◆ Dispose() [1/2]

virtual void ailiaSpeech.AiliaSpeechTranslateModel.Dispose ( )
inlinevirtual

リソースを解放します。

218  {
219  Dispose(true);
220  }

◆ Dispose() [2/2]

virtual void ailiaSpeech.AiliaSpeechTranslateModel.Dispose ( bool  disposing)
inlineprotectedvirtual
223  {
224  if (disposing){
225  // release managed resource
226  }
227  Close(); // release unmanaged resource
228  }

◆ GetEnvironmentId()

int ailiaSpeech.AiliaSpeechTranslateModel.GetEnvironmentId ( bool  is_gpu)
inline

実行環境を取得します。

引数
is_gpuGPUを使用するかどうか
戻り値
env_id
91  {
92  int env_id = Ailia.AILIA_ENVIRONMENT_ID_AUTO;
93  if (is_gpu) { // GPU
94  int count = 0;
95  Ailia.ailiaGetEnvironmentCount(ref count);
96  for (int i = 0; i < count; i++){
97  IntPtr env_ptr = IntPtr.Zero;
98  Ailia.ailiaGetEnvironment(ref env_ptr, (uint)i, Ailia.AILIA_ENVIRONMENT_VERSION);
99  Ailia.AILIAEnvironment env = (Ailia.AILIAEnvironment)Marshal.PtrToStructure(env_ptr, typeof(Ailia.AILIAEnvironment));
100 
101  if (env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_MPS || env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_CUDA || env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_VULKAN){
102  env_id = env.id;
103  env_name = Marshal.PtrToStringAnsi(env.name);
104  }
105  }
106  } else {
107  env_name = "cpu";
108  }
109  return env_id;
110  }

◆ GetEnvironmentName()

string ailiaSpeech.AiliaSpeechTranslateModel.GetEnvironmentName ( )
inline

実行環境の名称を取得します。

戻り値
env_name
123  {
124  return env_name;
125  }

◆ GetErrorDetail()

string ailiaSpeech.AiliaSpeechTranslateModel.GetErrorDetail ( )
inline

エラーの詳細を取得します。

戻り値
エラーの詳細を示す文字列。
68  {
69  return m_error_detail;
70  }

◆ IsError()

bool ailiaSpeech.AiliaSpeechTranslateModel.IsError ( )
inline

エラーが発生したか確認します。

戻り値
エラーが発生した場合はtrue、発生していない場合はfalseを返す。
53  {
54  return m_error;
55  }

◆ Open()

bool ailiaSpeech.AiliaSpeechTranslateModel.Open ( string  encoder_path,
string  decoder_path,
string  source_path,
string  target_path,
int  type,
int  env_id,
int  memory_mode 
)
inline

インスタンスを作成します。

引数
encoder_pathonnxファイルのパス名
decoder_pathonnxファイルのパス名
source_pathTokenizerのmodelファイルのパス名
target_pathTokenizerのmodelファイルのパス名
post_process_typeAILIA_SPEECH_POST_PROCESS_TYPE_*
env_id実行環境 (Ailia.AILIA_ENVIRONMENT_ID_AUTOで自動選択)
memory_modeメモリモード (Ailia.AILIA_MEMORY_REDUCE_CONSTANT | Ailia.AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER | Ailia.AILIA_MEMORY_REUSE_INTERSTAGE など)
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。
157  {
158  AiliaLicense.CheckAndDownloadLicense();
159 
160  if (net != null){
161  Close();
162  }
163 
164  AiliaSpeech.AILIASpeechApiCallback callback = AiliaSpeech.GetCallback();
165 
166  int task = AiliaSpeech.AILIA_SPEECH_TASK_TRANSCRIBE;
167  int flag = AiliaSpeech.AILIA_SPEECH_FLAG_NONE;
168 
169  int status = AiliaSpeech.ailiaSpeechCreate(ref net, env_id, Ailia.AILIA_MULTITHREAD_AUTO, memory_mode, task, flag, callback, AiliaSpeech.AILIA_SPEECH_API_CALLBACK_VERSION);
170  Check(status, "ailiaSpeechCreate");
171  if (status != 0){
172  return false;
173  }
174 
175 
176  status = AiliaSpeech.ailiaSpeechOpenPostProcessFile(net, encoder_path, decoder_path, source_path, target_path, IntPtr.Zero, type);
177  Check(status, "ailiaSpeechOpenPostProcessFile");
178  if (status != 0){
179  return false;
180  }
181 
182  m_error = false;
183  m_error_detail = "";
184 
185  return true;
186  }

◆ Translate()

string ailiaSpeech.AiliaSpeechTranslateModel.Translate ( string  input_text)
inline

翻訳を実行します。

引数
input_text入力テキスト
戻り値
成功した場合は翻訳後の文字列、失敗した場合はnullを返す。 @detail 翻訳を実行します。 ブロッキングAPIです。
257  {
258  AiliaSpeech.AILIASpeechText text = new AiliaSpeech.AILIASpeechText();
259 
260  byte[] input_text_byte = System.Text.Encoding.UTF8.GetBytes(input_text+"\u0000");
261  GCHandle input_text_handle = GCHandle.Alloc(input_text_byte, GCHandleType.Pinned);
262  IntPtr input_text_ptr = input_text_handle.AddrOfPinnedObject();
263 
264  byte[] language_text_byte = System.Text.Encoding.UTF8.GetBytes("None\u0000");
265  GCHandle language_handle = GCHandle.Alloc(language_text_byte, GCHandleType.Pinned);
266  IntPtr language_text_ptr = language_handle.AddrOfPinnedObject();
267 
268  text.text = input_text_ptr;
269  text.time_stamp_begin = 0.0f;
270  text.time_stamp_end = 0.0f;
271  text.confidence = 0.0f;
272  text.person_id = 0;
273  text.language = language_text_ptr;
274 
275  uint idx = 0;
276  int status = AiliaSpeech.ailiaSpeechSetText(net, text, AiliaSpeech.AILIA_SPEECH_TEXT_VERSION, idx);
277  if(status!=0){
278  Check(status, "ailiaSpeechSetText");
279  return null;
280  }
281 
282  status = AiliaSpeech.ailiaSpeechPostProcess(net);
283  if(status!=0){
284  Check(status, "ailiaSpeechPostProcess");
285  return null;
286  }
287 
288  status = AiliaSpeech.ailiaSpeechGetText(net, text, AiliaSpeech.AILIA_SPEECH_TEXT_VERSION, idx);
289  if(status!=0){
290  Check(status, "ailiaSpeechGetText");
291  return null;
292  }
293 
294  input_text_handle.Free();
295  language_handle.Free();
296 
297  return Marshal.PtrToStringAnsi(text.text);
298  }

このクラス詳解は次のファイルから抽出されました:
ailiaSpeech.AiliaSpeechTranslateModel.Close
virtual void Close()
インスタンスを破棄します。
Definition: AiliaSpeechTranslateModel.cs:202
ailiaSpeech.AiliaSpeechTranslateModel.Dispose
virtual void Dispose()
リソースを解放します。
Definition: AiliaSpeechTranslateModel.cs:217