o
     Nh                     @   s   d dl mZ d dlmZmZmZmZ d dlZd dlZd dl	Z
d dlZd dlmZ d dlZdZdZdZdZd	Zd d
lmZ d dlZe  edZd dlZdd Zdd Zdd Zd dlZdd Z dS )    )Audio)ListTupleDictAnyN)
functionalz(s3://suno-data/m4burns/beat_this_orig.ptzstudio/uploadszsuno-data-uploadsi>  i   )load_dotenvs3c                  C      t jddP} tjdd| d |   | d g }| D ]0}|d }|s(qz
|t	
| W q t	jyL } ztd|  W Y d }~qd }~ww |W  d    S 1 sYw   Y  d S )	N.jsonlsuffix	suno-dataz'datasets/bundles/v0/youtube/metas.jsonlKeyFileobjr   utf-8   跳过解析错误行: tempfileNamedTemporaryFile	S3_CLIENTdownload_fileobjflushseekdecodestripappendjsonloadsJSONDecodeErrorprintfmetasrawlinee r(   /app/util.pyget_json_file   s"   
$r*   c                  C   r
   )	Nr   r   r   z&datasets/bundles/v0/genius/metas.jsonlr   r   r   r   r   r"   r(   r(   r)   get_genius_file'   s"   
$r+   c                  C   r
   )	Nr   r   r   z'datasets/bundles/v3/discogs/metas.jsonlr   r   r   zskip parsing error line: r   r"   r(   r(   r)   get_discogs_json_file:   s"   
$r,   c                 C   sF  t  d|  d}tjdd	}ztjt||d |  tj|j	dt
dW W  d    S  tjjtjjfy   td|  d tjd	dG}z'ttd
|  d	| tj|j	dt
d}|W W  d     Y W  d    S  tjjy   tdt Y W d    Y W d    d S w 1 sw   Y  Y nw ty } zjtd|  d|  tjd	dO}z+ttd
|  d	| tj|j	dt
d}|W W  d    W  Y d }~W  d    S  tjjy   tdt Y W d    W Y d }~W d    d S w 1 sw   Y  |d }~ww W d    d S 1 sw   Y  d S )N/z.opusr   )Bucketr   r      )
n_channelssample_ratezOpus not found for z, trying to download mp3...z.mp3zstudio/uploads/zNo .mp3 file found forzError getting opus for z: )UPLOADS_KEY_PREFIXr   r   r   r   UPLOADS_BUCKETr   r   	from_filenameSAMPLE_RATE
exceptionsZ	NoSuchKeyClientErrorr!   botocoreZaudio_id	Exception)Zgen_idkeyr#   Zprompt_audior'   r(   r(   r)   	get_audioM   sX   

$r<   )!suno_utils.audior   typingr   r   r   r   r   bisectnumpynptorchZtorch.nnr   Fboto3ZRNN_DOWNBEAT_MERT_MODEL_PATHr2   r3   r6   ZWINDOW_SIZEZdotenvr   osclientr   r   r*   r+   r,   botocore.exceptionsr9   r<   r(   r(   r(   r)   <module>   s.    
