Go to the documentation of this file.00001
00002
00003
00004 PKG_NAME = 'rospeex_core'
00005
00006 try:
00007 import roslib; roslib.load_manifest(PKG_NAME)
00008 except:
00009 pass
00010
00011 import os
00012 import logging
00013 import unittest
00014 import ConfigParser
00015
00016 from nose.tools import eq_, raises, nottest
00017 from rospeex_core.sr.client_nict import SpeechRecognitionClient_NICT
00018 from rospeex_core.exceptions import InvalidRequestException
00019 from rospeex_core.exceptions import RequestTimeoutException
00020 from rospeex_core.exceptions import ParameterException
00021 from rospeex_core.exceptions import UnsupportedLanguageException
00022
00023
00024
00025 logger = logging.getLogger(__name__)
00026 logger.setLevel(logging.DEBUG)
00027 formatter = logging.Formatter('%(asctime)s:%(levelname)s:%(filename)s:%(lineno)d:%(message)s')
00028 ch = logging.StreamHandler()
00029 ch.setFormatter(formatter)
00030 logger.addHandler(ch)
00031
00032
00033 class TestSpeechRecognitionClient_NICT(unittest.TestCase):
00034 def setUp(self):
00035 base_dir = os.path.dirname(__file__)
00036 filename = os.path.join(base_dir, 'config.cfg')
00037 settings = ConfigParser.ConfigParser()
00038 settings.read(filename)
00039 self.flac_file = os.path.join(base_dir, settings.get('SpeechRecognition', 'flac_file'))
00040 self.broken_wav_file = os.path.join(base_dir, settings.get('SpeechRecognition', 'broken_wav_file'))
00041 self.wav_file = os.path.join(base_dir, settings.get('SpeechRecognition', 'wav_file'))
00042
00043
00044 @raises(ParameterException)
00045 def test_request_invalid_audio_format_flac(self):
00046 request_data = open(self.flac_file, 'rb').read()
00047 client = SpeechRecognitionClient_NICT()
00048 client.request(request_data)
00049
00050
00051 @raises(ParameterException)
00052 def test_request_invalid_audio_format_broken_wav(self):
00053 language = 'ja'
00054 request_data = open(self.broken_wav_file, 'rb').read()
00055 client = SpeechRecognitionClient_NICT()
00056 client.request(data=request_data, language=language)
00057
00058
00059 @raises(ParameterException)
00060 def test_request_invalid_language(self):
00061 language = 'hoge'
00062 request_data = open(self.wav_file, 'rb').read()
00063 client = SpeechRecognitionClient_NICT()
00064 client.request(data=request_data, language=language)
00065
00066
00067 @raises(RequestTimeoutException)
00068 def test_request_invalid_request_timeout(self):
00069 language = 'ja'
00070 request_data = open(self.wav_file, 'rb').read()
00071 client = SpeechRecognitionClient_NICT()
00072 client.request(data=request_data, language=language, timeout=1)
00073
00074
00075 def test_request_valid_language(self):
00076 for language in SpeechRecognitionClient_NICT.LANGUAGES:
00077 request_data = open(self.wav_file, 'rb').read()
00078 client = SpeechRecognitionClient_NICT()
00079 msg = client.request(data=request_data, language=language)
00080 logger.info(msg)
00081
00082
00083 if __name__ == '__main__':
00084 import rosunit
00085 test_class = TestSpeechRecognitionClient_NICT
00086 rosunit.unitrun(PKG_NAME, 'speech_recognition_client_nict', test_class, None, coverage_packages=['rospeex.sr'])