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.

test_key_word_spotting_farfield.py 1.6 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import os.path
  2. import unittest
  3. from modelscope.fileio import File
  4. from modelscope.pipelines import pipeline
  5. from modelscope.utils.constant import Tasks
  6. from modelscope.utils.test_utils import test_level
  7. TEST_SPEECH_FILE = 'data/test/audios/3ch_nihaomiya.wav'
  8. class KWSFarfieldTest(unittest.TestCase):
  9. def setUp(self) -> None:
  10. self.model_id = 'damo/speech_dfsmn_kws_char_farfield_16k_nihaomiya'
  11. @unittest.skipUnless(test_level() >= 0, 'skip test in current test level')
  12. def test_normal(self):
  13. kws = pipeline(Tasks.keyword_spotting, model=self.model_id)
  14. inputs = {'input_file': os.path.join(os.getcwd(), TEST_SPEECH_FILE)}
  15. result = kws(inputs)
  16. self.assertEqual(len(result['kws_list']), 5)
  17. print(result['kws_list'][-1])
  18. @unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
  19. def test_output(self):
  20. kws = pipeline(Tasks.keyword_spotting, model=self.model_id)
  21. inputs = {
  22. 'input_file': os.path.join(os.getcwd(), TEST_SPEECH_FILE),
  23. 'output_file': 'output.wav'
  24. }
  25. result = kws(inputs)
  26. self.assertEqual(len(result['kws_list']), 5)
  27. print(result['kws_list'][-1])
  28. @unittest.skipUnless(test_level() >= 1, 'skip test in current test level')
  29. def test_input_bytes(self):
  30. with open(os.path.join(os.getcwd(), TEST_SPEECH_FILE), 'rb') as f:
  31. data = f.read()
  32. kws = pipeline(Tasks.keyword_spotting, model=self.model_id)
  33. result = kws(data)
  34. self.assertEqual(len(result['kws_list']), 5)
  35. print(result['kws_list'][-1])