×
×

1 Depois disto o SENHOR respondeu a Jó de um redemoinho, dizendo:
2 Quem é este que escurece o conselho com palavras sem conhecimento?
3 Agora cinge os teus lombos, como homem; e perguntar-te-ei, e tu me ensinarás.
4 Onde estavas tu, quando eu fundava a terra? Faze-mo saber, se tens inteligência.
5 Quem lhe pôs as medidas, se é que o sabes? Ou quem estendeu sobre ela o cordel?
6 Sobre que estão fundadas as suas bases, ou quem assentou a sua pedra de esquina,
7 Quando as estrelas da alva juntas alegremente cantavam, e todos os filhos de Deus jubilavam?
8 Ou quem encerrou o mar com portas, quando este rompeu e saiu da madre;
9 Quando eu pus as nuvens por sua vestidura, e a escuridão por faixa?
10 Quando eu lhe tracei limites, e lhe pus portas e ferrolhos,
11 E disse: Até aqui virás, e não mais adiante, e aqui se parará o orgulho das tuas ondas?
12 Ou desde os teus dias deste ordem à madrugada, ou mostraste à alva o seu lugar;
13 Para que pegasse nas extremidades da terra, e os ímpios fossem sacudidos dela;
14 E se transformasse como o barro sob o selo, e se pusessem como vestidos;
15 E dos ímpios se desvie a sua luz, e o braço altivo se quebrante;
16 Ou entraste tu até às origens do mar, ou passeaste no mais profundo do abismo?
17 Ou descobriram-se-te as portas da morte, ou viste as portas da sombra da morte?
18 Ou com o teu entendimento chegaste às larguras da terra? Faze-mo saber, se sabes tudo isto.
19 Onde está o caminho onde mora a luz? E, quanto às trevas, onde está o seu lugar;
20 Para que as tragas aos seus limites, e para que saibas as veredas da sua casa?
21 De certo tu o sabes, porque já então eras nascido, e por ser grande o número dos teus dias!
22 Ou entraste tu até aos tesouros da neve, e viste os tesouros da saraiva,
23 Que eu retenho até ao tempo da angústia, até ao dia da peleja e da guerra?
24 Onde está o caminho em que se reparte a luz, e se espalha o vento oriental sobre a terra?
25 Quem abriu para a inundação um leito, e um caminho para os relâmpagos dos trovões,
26 Para chover sobre a terra, onde não há ninguém, e no deserto, em que não há homem;
27 Para fartar a terra deserta e assolada, e para fazer crescer os renovos da erva?
28 A chuva porventura tem pai? Ou quem gerou as gotas do orvalho?
29 De que ventre procedeu o gelo? E quem gerou a geada do céu?
30 Como debaixo de pedra as águas se endurecem, e a superfície do abismo se congela.
31 Ou poderás tu ajuntar as delícias do Sete-estrelo ou soltar os cordéis do Órion?
32 Ou produzir as constelações a seu tempo, e guiar a Ursa com seus filhos?
33 Sabes tu as ordenanças dos céus, ou podes estabelecer o domínio deles sobre a terra?
34 Ou podes levantar a tua voz até às nuvens, para que a abundância das águas te cubra?
35 Ou mandarás aos raios para que saiam, e te digam: Eis-nos aqui?
36 Quem pôs a sabedoria no íntimo, ou quem deu à mente o entendimento?
37 Quem numerará as nuvens com sabedoria? Ou os odres dos céus, quem os esvaziará,
38 Quando se funde o pó numa massa, e se apegam os torrões uns aos outros?
39 Porventura caçarás tu presa para a leoa, ou saciarás a fome dos filhos dos leões,
40 Quando se agacham nos covis, e estão à espreita nas covas?
41 Quem prepara aos corvos o seu alimento, quando os seus filhotes gritam a Deus e andam vagueando, por não terem o que comer?

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; } );