You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.py 1.3 kB

10 months ago
10 months ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """TODO: Add docstring."""
  2. import os
  3. os.environ["ARGOS_DEVICE_TYPE"] = "auto"
  4. import argostranslate.package
  5. import argostranslate.translate
  6. import pyarrow as pa
  7. from dora import Node
  8. from_code = os.getenv("SOURCE_LANGUAGE", "fr")
  9. to_code = os.getenv("TARGET_LANGUAGE", "en")
  10. # Download and install Argos Translate package
  11. argostranslate.package.update_package_index()
  12. available_packages = argostranslate.package.get_available_packages()
  13. package_to_install = next(
  14. filter(
  15. lambda x: x.from_code == from_code and x.to_code == to_code, available_packages,
  16. ),
  17. )
  18. argostranslate.package.install_from_path(package_to_install.download())
  19. def main():
  20. """TODO: Add docstring."""
  21. node = Node()
  22. while True:
  23. event = node.next()
  24. if event is None:
  25. break
  26. if event["type"] == "INPUT" and event["id"] == "text":
  27. text = event["value"][0].as_py()
  28. translatedText = argostranslate.translate.translate(
  29. text,
  30. from_code,
  31. to_code,
  32. )
  33. print(text, flush=True)
  34. print("translated: " + translatedText, flush=True)
  35. node.send_output(
  36. "text",
  37. pa.array([translatedText]),
  38. {"language": to_code},
  39. )