Spaces:
Runtime error
Runtime error
import os | |
import pathlib | |
import torch | |
from fairseq2.assets import InProcAssetMetadataProvider, asset_store | |
from seamless_communication.inference import Translator | |
CHECKPOINTS_PATH = pathlib.Path(os.getenv("CHECKPOINTS_PATH", "/home/user/app/models")) | |
if not CHECKPOINTS_PATH.exists(): | |
# from huggingface_hub import snapshot_download | |
# snapshot_download(repo_id="facebook/seamless-m4t-v2-large", repo_type="model", local_dir=CHECKPOINTS_PATH) | |
raise FileNotFoundError(f"Checkpoint path {CHECKPOINTS_PATH} does not exist") | |
asset_store.env_resolvers.clear() | |
asset_store.env_resolvers.append(lambda: "demo") | |
demo_metadata = [ | |
# https://github.com/facebookresearch/seamless_communication/blob/dd67e71317d66752ef16cf21bd842ca3273244c9/src/seamless_communication/cards/seamlessM4T_v2_large.yaml#L10 | |
# char_tokenizer: "https://huggingface.co/facebook/seamless-m4t-v2-large/resolve/main/spm_char_lang38_tc.model" | |
# checkpoint: "https://huggingface.co/facebook/seamless-m4t-v2-large/resolve/main/seamlessM4T_v2_large.pt" | |
{ | |
"name": "seamlessM4T_v2_large@demo", | |
"checkpoint": f"file://{CHECKPOINTS_PATH}/seamlessM4T_v2_large.pt", | |
"char_tokenizer": f"file://{CHECKPOINTS_PATH}/spm_char_lang38_tc.model", | |
}, | |
# https://github.com/facebookresearch/seamless_communication/blob/dd67e71317d66752ef16cf21bd842ca3273244c9/src/seamless_communication/cards/unity_nllb-100.yaml#L9C1-L9C93 | |
# tokenizer: "https://huggingface.co/facebook/seamless-m4t-large/resolve/main/tokenizer.model" | |
{ | |
"name": "unity_nllb-100@demo", | |
"tokenizer": f"file://{CHECKPOINTS_PATH}/tokenizer.model", | |
}, | |
# https://github.com/facebookresearch/seamless_communication/blob/dd67e71317d66752ef16cf21bd842ca3273244c9/src/seamless_communication/cards/vocoder_v2.yaml#L10 | |
# checkpoint: "https://dl.fbaipublicfiles.com/seamless/models/vocoder_v2.pt" | |
{ | |
"name": "vocoder_v2@demo", | |
"checkpoint": f"file://{CHECKPOINTS_PATH}/vocoder_v2.pt", | |
}, | |
] | |
asset_store.metadata_providers.append(InProcAssetMetadataProvider(demo_metadata)) | |
if torch.cuda.is_available(): | |
device = torch.device("cuda:0") | |
dtype = torch.float16 | |
else: | |
device = torch.device("cpu") | |
dtype = torch.float32 | |
translator = Translator( | |
model_name_or_card="seamlessM4T_v2_large", | |
vocoder_name_or_card="vocoder_v2", | |
device=device, | |
dtype=dtype, | |
apply_mintox=True, | |
) | |
if __name__ == '__main__': | |
input_text = "Hello, how are you today?" | |
source_language_code = "eng" | |
target_language_code = "zsm" | |
result = translator.predict( | |
input=input_text, | |
task_str="T2TT", | |
src_lang=source_language_code, | |
tgt_lang=target_language_code, | |
) | |
print(str(result[0])) | |