🚀 Whisper TFLite模型:用於F-Droid上的Whisper應用
本項目提供適用於F-Droid平臺上Whisper應用的TFLite模型。“轉錄 - 翻譯” 模型為 “serving_transcribe” 和 “serving_translate” 提供了簽名,以強制模型執行特定操作。
🚀 快速開始
轉錄和翻譯功能代碼示例
以下代碼展示瞭如何使用模型進行轉錄和翻譯操作:
@tf.function(
input_signature=[
tf.TensorSpec((1, 80, 3000), tf.float32, name="input_features"),
],
)
def transcribe(self, input_features):
outputs = self.model.generate(
input_features,
max_new_tokens=450,
return_dict_in_generate=True,
forced_decoder_ids=[[2, 50359], [3, 50363]],
)
return {"sequences": outputs["sequences"]}
@tf.function(
input_signature=[
tf.TensorSpec((1, 80, 3000), tf.float32, name="input_features"),
],
)
def translate(self, input_features):
outputs = self.model.generate(
input_features,
max_new_tokens=450,
return_dict_in_generate=True,
forced_decoder_ids=[[2, 50358], [3, 50363]],
)
return {"sequences": outputs["sequences"]}
指定特定語言轉錄和翻譯
若要強制對特定語言進行轉錄,可按如下方式設置解碼器ID:
def transcribe(self, input_features):
outputs = self.model.generate(
input_features,
max_new_tokens=450,
return_dict_in_generate=True,
forced_decoder_ids=[[1, 50261], [2, 50359], [3, 50363]],
)
return {"sequences": outputs["sequences"]}
def translate(self, input_features):
outputs = self.model.generate(
input_features,
max_new_tokens=450,
return_dict_in_generate=True,
forced_decoder_ids=[[1, 50261], [2, 50358], [3, 50363]],
)
return {"sequences": outputs["sequences"]}
(語言代碼可參考:https://github.com/woheller69/whisperIME/blob/master/app/src/main/java/com/whispertflite/utils/InputLang.java)
📄 許可證
本項目採用MIT許可證。