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

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