Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
How to get wave module methods for reading a .wav audio but with a temporary file tempfile.SpooledTemporaryFile obtained from fastAPI post request?

I have a function that receives a .wav audio path directory and return its pcm_data in bytes, sample_rate as int and duration as float.

def read_wave(self, path: str) -> Dict:
   with contextlib.closing(wave.open(path, "rb")) as wf:

     num_channels: int = wf.getnchannels()
     assert num_channels == 1
     sample_width: int = wf.getsampwidth()
     assert sample_width == 2
     sample_rate: int = wf.getframerate()
     assert sample_rate in (8000, 16000, 32000)
     frames: int = wf.getnframes()
     pcm_data: bytes = wf.readframes(frames)
     duration: float = frames / sample_rate

     return {
          "pcm_data": pcm_data,
          "sample_rate": sample_rate,
          "duration": duration,
     }

Now I want that the audio file comes from a uploaded audio using POST request with FastAPI, so if I upload a .wav audio using the UploadFile class from fastapi, I get a tempfile.SpooledTemporaryFile, how can I adapt the first function for this case.

@app.post(path="/upload-audios/")
async def upload_audios(audios: list[UploadFile] = File(...)):
   pass

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

The wave.open function supports a file like object, so you can use the .file attribute of UploadFile directly (it represents the SpooledTemporaryFile instance).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda