×
×

1 E chegaram as filhas de Zelofeade, filho de Hefer, filho de Gileade, filho de Maquir, filho de Manassés, entre as famílias de Manassés, filho de José; e estes são os nomes delas; Maalá, Noa, Hogla, Milca, e Tirza;
2 E apresentaram-se diante de Moisés, e diante de Eleazar, o sacerdote, e diante dos príncipes e de toda a congregação, à porta da tenda da congregação, dizendo:
3 Nosso pai morreu no deserto, e não estava entre os que se congregaram contra o Senhor no grupo de Coré; mas morreu no seu próprio pecado, e não teve filhos.
4 Por que se tiraria o nome de nosso pai do meio da sua família, porquanto não teve filhos? Dá-nos possessão entre os irmãos de nosso pai.
5 E Moisés levou a causa delas perante o Senhor.
6 E falou o Senhor a Moisés, dizendo:
7 As filhas de Zelofeade falam o que é justo; certamente lhes darás possessão de herança entre os irmãos de seu pai; e a herança de seu pai farás passar a elas.
8 E falarás aos filhos de Israel, dizendo: Quando alguém morrer e não tiver filho, então fareis passar a sua herança à sua filha.
9 E, se não tiver filha, então a sua herança dareis a seus irmãos.
10 Porém, se não tiver irmãos, então dareis a sua herança aos irmãos de seu pai.
11 Se também seu pai não tiver irmãos, então dareis a sua herança a seu parente, àquele que lhe for o mais chegado da sua família, para que a possua; isto aos filhos de Israel será por estatuto de direito, como o Senhor ordenou a Moisés.
12 Depois disse o Senhor a Moisés: Sobe a este monte de Abarim, e vê a terra que tenho dado aos filhos de Israel.
13 E, tendo-a visto, então serás recolhido ao teu povo, assim como foi recolhido teu irmão Arão;
14 Porquanto, no deserto de Zim, na contenda da congregação, fostes rebeldes ao meu mandado de me santificar nas águas diante dos seus olhos (estas são as águas de Meribá de Cades, no deserto de Zim).
15 Então falou Moisés ao Senhor, dizendo:
16 O Senhor, Deus dos espíritos de toda a carne, ponha um homem sobre esta congregação,
17 Que saia diante deles, e que entre diante deles, e que os faça sair, e que os faça entrar; para que a congregação do Senhor não seja como ovelhas que não têm pastor.
18 Então disse o Senhor a Moisés: Toma a Josué, filho de Num, homem em quem há o Espírito, e impõe a tua mão sobre ele.
19 E apresenta-o perante Eleazar, o sacerdote, e perante toda a congregação, e dá-lhe as tuas ordens na presença deles.
20 E põe sobre ele da tua glória, para que lhe obedeça toda a congregação dos filhos de Israel.
21 E apresentar-se-á perante Eleazar, o sacerdote, o qual por ele consultará, segundo o juízo de Urim, perante o Senhor; conforme a sua palavra sairão, e conforme a sua palavra entrarão, ele e todos os filhos de Israel com ele, e toda a congregação.
22 E fez Moisés como o Senhor lhe ordenara; porque tomou a Josué, e apresentou-o perante Eleazar, o sacerdote, e perante toda a congregação;
23 E sobre ele impôs as suas mãos, e lhe deu ordens, como o Senhor falara por intermédio de Moisés.

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