def create(self): """Create a transcript.""" # TODO remove model checking after api defaults to waiting for models self.log.debug("validating create()") self.validate() self.log.debug("validation complete") if self.model: self.model = self.model.get() if self.model and self.model.status != 'trained': self.status = 'waiting for model' else: data = {} data['audio_src_url'] = self.audio_url if self.model: data['model_id'] = self.model.id if self.speaker_count: data['speaker_count'] = self.speaker_count if not self.format_text: data['options'] = {'format_text': self.format_text} payload = json.dumps(data) url = self.api + '/transcript' self.log.debug("posting transcript") response = requests.post(url, data=payload, headers=self.headers) self.log.debug("transcript posted") self.warning = handle_warnings(response, 'transcript', self.log) response = response.json()['transcript'] self.id, self.status = response['id'], response['status'] self.log.debug('Transcript %s %s' % (self.id, self.status)) return self
def get(self, id=None): """Get a language model.""" self.reset(id) url = ASSEMBLYAI_URL + '/model/' + str(self.id) response = requests.get(url, headers=self.headers) self.warning = handle_warnings(response, 'model') response = response.json()['model'] # self.phrases = response['phrases'] self.dict = response self.status = response['status'] logging.debug('Model %s %s' % (self.id, self.status)) return self
def create(self): data = {} data["phrases"] = self.phrases # TODO validate phrases if self.name: data['name'] = self.name payload = json.dumps(data) url = ASSEMBLYAI_URL + '/model' response = requests.post(url, data=payload, headers=self.headers) self.warning = handle_warnings(response, 'model', self.log) response = response.json()['model'] self.id, self.status = response['id'], response['status'] self.log.debug('Model %s %s' % (self.id, self.status)) return self
def create(self): # TODO remove model checking after api defaults to waiting for models if self.model: self.model = self.model.get() if self.model and self.model.status != 'trained': self.status = 'waiting for model' else: data = {} data['audio_src_url'] = self.audio_url if self.model: data['model_id'] = self.model.id payload = json.dumps(data) url = self.api + '/transcript' response = requests.post(url, data=payload, headers=self.headers) self.warning = handle_warnings(response, 'transcript') response = response.json()['transcript'] self.id, self.status = response['id'], response['status'] logging.debug('Transcript %s %s' % (self.id, self.status)) return self
def get(self, id=None): """Get a transcript.""" self.reset(id) if self.model: self.check_model() if self.id: url = self.api + '/transcript/' + str(self.id) response = requests.get(url, headers=self.headers) self.warning = handle_warnings(response, 'transcript') response = response.json()['transcript'] self.dict = response self.id, self.status = response['id'], response['status'] # if self.status == 'completed': self.text_raw = response['text'] self.text = response['text_formatted'] self.confidence = response['confidence'] self.segments = response['segments'] self.speaker_count = response['speaker_count'] logging.debug('Transcript %s %s' % (self.id, self.status)) return self
def request(self): url = self.api + '/transcript/' + str(self.id) response = requests.get(url, headers=self.headers) self.warning = handle_warnings(response, 'transcript', self.log) response = response.json()['transcript'] return response