from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_torch_available,
)


UpperCAmelCase_			    =							{
    '''configuration_speecht5''': [
        '''SPEECHT5_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''SPEECHT5_PRETRAINED_HIFIGAN_CONFIG_ARCHIVE_MAP''',
        '''SpeechT5Config''',
        '''SpeechT5HifiGanConfig''',
    ],
    '''feature_extraction_speecht5''': ['''SpeechT5FeatureExtractor'''],
    '''processing_speecht5''': ['''SpeechT5Processor'''],
}

try:
  if not is_sentencepiece_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							['''SpeechT5Tokenizer''']

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase_			    =							[
      '''SPEECHT5_PRETRAINED_MODEL_ARCHIVE_LIST''',
      '''SpeechT5ForSpeechToText''',
      '''SpeechT5ForSpeechToSpeech''',
      '''SpeechT5ForTextToSpeech''',
      '''SpeechT5Model''',
      '''SpeechT5PreTrainedModel''',
      '''SpeechT5HifiGan''',
  ]

if TYPE_CHECKING:
  from .configuration_speechta import (
      SPEECHT5_PRETRAINED_CONFIG_ARCHIVE_MAP,
      SPEECHT5_PRETRAINED_HIFIGAN_CONFIG_ARCHIVE_MAP,
      SpeechTaConfig,
      SpeechTaHifiGanConfig,
  )
  from .feature_extraction_speechta import SpeechTaFeatureExtractor
  from .processing_speechta import SpeechTaProcessor

  try:
    if not is_sentencepiece_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_speechta import SpeechTaTokenizer

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_speechta import (
        SPEECHT5_PRETRAINED_MODEL_ARCHIVE_LIST,
        SpeechTaForSpeechToSpeech,
        SpeechTaForSpeechToText,
        SpeechTaForTextToSpeech,
        SpeechTaHifiGan,
        SpeechTaModel,
        SpeechTaPreTrainedModel,
    )

else:
  import sys

  UpperCAmelCase_			    =							_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)
from __future__ import annotations

UpperCAmelCase_			    =							1.6_0_2_1E-1_9  # units = C




def       lowerCAmelCase_     (		lowercase:							float  ,					lowercase:							float  ,					lowercase:							float  ,					)    ->				tuple[str, float]:







 '''simple docstring'''
 if (conductivity, electron_conc, mobility).count(0		) != 1:
  raise ValueError('''You cannot supply more or less than 2 values'''		)
 elif conductivity < 0:
  raise ValueError('''Conductivity cannot be negative'''		)
 elif electron_conc < 0:
  raise ValueError('''Electron concentration cannot be negative'''		)
 elif mobility < 0:
  raise ValueError('''mobility cannot be negative'''		)
 elif conductivity == 0:
  return (
      "conductivity",
      mobility * electron_conc * ELECTRON_CHARGE,
  )
 elif electron_conc == 0:
  return (
      "electron_conc",
      conductivity / (mobility * ELECTRON_CHARGE),
  )
 else:
  return (
      "mobility",
      conductivity / (electron_conc * ELECTRON_CHARGE),
  )


if __name__ == "__main__":
  import doctest

  doctest.testmod()