×
×

1 Depois disto abriu Jó a sua boca, e amaldiçoou o seu dia.
2 E Jó, falando, disse:
3 Pereça o dia em que nasci, e a noite em que se disse: Foi concebido um homem!
4 Converta-se aquele dia em trevas; e Deus, lá de cima, não tenha cuidado dele, nem resplandeça sobre ele a luz.
5 Contaminem-no as trevas e a sombra da morte; habitem sobre ele nuvens; a escuridão do dia o espante!
6 Quanto àquela noite, dela se apodere a escuridão; e não se regozije ela entre os dias do ano; e não entre no número dos meses!
7 Ah! que solitária seja aquela noite, e nela não entre voz de júbilo!
8 Amaldiçoem-na aqueles que amaldiçoam o dia, que estão prontos para suscitar o seu pranto.
9 Escureçam-se as estrelas do seu crepúsculo; que espere a luz, e não venha; e não veja as pálpebras da alva;
10 Porque não fechou as portas do ventre; nem escondeu dos meus olhos a canseira.
11 Por que não morri eu desde a madre? E em saindo do ventre, não expirei?
12 Por que me receberam os joelhos? E por que os peitos, para que mamasse?
13 Porque já agora jazeria e repousaria; dormiria, e então haveria repouso para mim.
14 Com os reis e conselheiros da terra, que para si edificam casas nos lugares assolados,
15 Ou com os príncipes que possuem ouro, que enchem as suas casas de prata,
16 Ou como aborto oculto, não existiria; como as crianças que não viram a luz.
17 Ali os maus cessam de perturbar; e ali repousam os cansados.
18 Ali os presos juntamente repousam, e não ouvem a voz do exator.
19 Ali está o pequeno e o grande, e o servo livre de seu senhor.
20 Por que se dá luz ao miserável, e vida aos amargurados de ânimo?
21 Que esperam a morte, e ela não vem; e cavam em procura dela mais do que de tesouros ocultos;
22 Que de alegria saltam, e exultam, achando a sepultura?
23 Por que se dá luz ao homem, cujo caminho é oculto, e a quem Deus o encobriu?
24 Porque antes do meu pão vem o meu suspiro; e os meus gemidos se derramam como água.
25 Porque aquilo que temia me sobreveio; e o que receava me aconteceu.
26 Nunca estive tranqüilo, nem sosseguei, nem repousei, mas veio sobre mim a perturbação.

Wesley Alves

Sobre o Autor

Wesley Alves é Missionário Digital Interdenominacional e Editor-Chefe do Versículo Vivo. Cristão apaixonado pela natureza e fotógrafo, ele dedica sua vida e ministério a proclamar a urgência da volta de Jesus.

Conheça o autor →
0
// ===== BÍBLIA — ÁUDIO (ElevenLabs) ===== if ( ! defined( 'VV_ELEVEN_MODEL' ) ) define( 'VV_ELEVEN_MODEL', 'eleven_multilingual_v2' ); function vv_audio_paths() { $up = wp_get_upload_dir(); $dir = trailingslashit( $up['basedir'] ) . 'audio'; if ( ! file_exists( $dir ) ) wp_mkdir_p( $dir ); return array( 'dir' => $dir, 'url' => trailingslashit( $up['baseurl'] ) . 'audio' ); } function vv_chapter_audio_url( $slug ) { if ( ! $slug ) return ''; $p = vv_audio_paths(); return file_exists( $p['dir'].'/'.$slug.'.mp3' ) ? $p['url'].'/'.$slug.'.mp3' : ''; } function vv_chapter_tts_text( $post_id, $titulo ) { $c = get_post_field( 'post_content', $post_id ); $c = preg_replace( '//i', "\n", $c ); $c = wp_strip_all_tags( $c ); $c = html_entity_decode( $c, ENT_QUOTES, 'UTF-8' ); $out = array(); foreach ( preg_split( '/\n+/', $c ) as $ln ) { $ln = trim( $ln ); if ( $ln === '' ) continue; $ln = preg_replace( '/^\d+\s+/', '', $ln ); $out[] = $ln; } return trim( $titulo.'. '.implode( ' ', $out ) ); } function vv_chunk_text( $text, $max = 2400 ) { $parts = preg_split( '/(?<=[\.\?\!])\s+/', $text ); $chunks = array(); $cur = ''; foreach ( $parts as $s ) { if ( $cur !== '' && ( strlen($cur)+strlen($s)+1 ) > $max ) { $chunks[]=$cur; $cur=''; } $cur = ($cur==='')?$s:$cur.' '.$s; } if ( $cur !== '' ) $chunks[] = $cur; return $chunks; } function vv_eleven_tts( $text ) { $resp = wp_remote_post( 'https://api.elevenlabs.io/v1/text-to-speech/'.VV_ELEVEN_VOICE, array( 'timeout'=>120, 'headers'=>array('xi-api-key'=>VV_ELEVEN_KEY,'Content-Type'=>'application/json','Accept'=>'audio/mpeg'), 'body'=>wp_json_encode(array('text'=>$text,'model_id'=>VV_ELEVEN_MODEL,'voice_settings'=>array('stability'=>0.5,'similarity_boost'=>0.8,'style'=>0.0,'use_speaker_boost'=>true))), ) ); if ( is_wp_error($resp) ) return array('err'=>$resp->get_error_message()); $code = wp_remote_retrieve_response_code($resp); $body = wp_remote_retrieve_body($resp); if ( $code !== 200 ) return array('err'=>'HTTP '.$code.' — '.substr(wp_strip_all_tags($body),0,300)); return array('audio'=>$body); } function vv_gen_chapter_audio( $post_id, $slug, $titulo ) { $p = vv_audio_paths(); $dest = $p['dir'].'/'.$slug.'.mp3'; $text = vv_chapter_tts_text( $post_id, $titulo ); if ( $text === '' ) return 'texto vazio'; $mp3 = ''; foreach ( vv_chunk_text($text) as $ch ) { $r = vv_eleven_tts($ch); if ( isset($r['err']) ) return $r['err']; $mp3 .= $r['audio']; } if ( $mp3 === '' ) return 'sem áudio retornado'; file_put_contents( $dest, $mp3 ); return true; } add_action( 'admin_init', function () { if ( ! current_user_can('manage_options') || ! isset($_GET['vv_gen_audio']) ) return; if ( VV_ELEVEN_KEY==='' || VV_ELEVEN_VOICE==='' ) wp_die('Configure VV_ELEVEN_KEY e VV_ELEVEN_VOICE.'); $mapa = vv_biblia_livros_mapa(); $lote = isset($_GET['n'])?max(1,min(20,(int)$_GET['n'])):6; $so = isset($_GET['slug'])?sanitize_title($_GET['slug']):''; global $wpdb; $rows = $wpdb->get_results("SELECT ID, post_name FROM {$wpdb->posts} WHERE post_type='post' AND post_status='publish' AND post_name REGEXP '^[a-z0-9-]+-[0-9]+$' ORDER BY post_date"); $pend = array(); foreach ( $rows as $r ) { if ( ! preg_match('/^(.+)-(\d+)$/',$r->post_name,$m) ) continue; if ( ! isset($mapa[$m[1]]) ) continue; if ( $so!=='' && $r->post_name!==$so ) continue; if ( $so==='' && vv_chapter_audio_url($r->post_name)!=='' ) continue; $pend[] = array('id'=>$r->ID,'slug'=>$r->post_name,'nome'=>$mapa[$m[1]][0].' '.$m[2]); } if ( $so!=='' && ! $pend ) wp_die('Capítulo "'.esc_html($so).'" não encontrado.'); $total = count($pend); $feitos = array(); $erro = ''; foreach ( array_slice($pend,0,$lote) as $c ) { $res = vv_gen_chapter_audio($c['id'],$c['slug'],$c['nome']); if ($res===true) $feitos[]=$c['nome']; else { $erro=$c['nome'].' — '.$res; break; } } $restam = $total-count($feitos); $next = esc_url(add_query_arg(array('vv_gen_audio'=>1,'n'=>$lote))); header('Content-Type: text/html; charset=utf-8'); echo ''; if ( $restam>0 && ! $erro && $so==='' ) echo ''; echo ''; echo '

Gerando áudios (ElevenLabs)

Gerados: '.count($feitos).' '.esc_html(implode(', ',$feitos)).'

Faltam: '.max(0,$restam).'

'; if ($erro) echo '

Erro em '.esc_html($erro).'

Tentar de novo

'; elseif ($restam<=0) echo '

✓ Concluído!

'; else echo '

Continuando… seguir

'; exit; } );