Ejemplos de Amazon Polly usando SDK para Rust - AWS SDK para Rust

Ejemplos de Amazon Polly usando SDK para Rust

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes usando un AWS SDK para Rust con Amazon Polly.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

Los escenarios son ejemplos de código que muestran cómo llevar a cabo una tarea específica a través de llamadas a varias funciones dentro del servicio o combinado con otros Servicios de AWS.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar DescribeVoices.

SDK para Rust
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

async fn list_voices(client: &Client) -> Result<(), Error> { let resp = client.describe_voices().send().await?; println!("Voices:"); let voices = resp.voices(); for voice in voices { println!(" Name: {}", voice.name().unwrap_or("No name!")); println!( " Language: {}", voice.language_name().unwrap_or("No language!") ); println!(); } println!("Found {} voices", voices.len()); Ok(()) }
  • Para obtener información sobre la API, consulte DescribeVoices en la Referencia de la API de AWS SDK para Rust.

En el siguiente ejemplo de código, se muestra cómo utilizar ListLexicons.

SDK para Rust
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

async fn show_lexicons(client: &Client) -> Result<(), Error> { let resp = client.list_lexicons().send().await?; println!("Lexicons:"); let lexicons = resp.lexicons(); for lexicon in lexicons { println!(" Name: {}", lexicon.name().unwrap_or_default()); println!( " Language: {:?}\n", lexicon .attributes() .as_ref() .map(|attrib| attrib .language_code .as_ref() .expect("languages must have language codes")) .expect("languages must have attributes") ); } println!(); println!("Found {} lexicons.", lexicons.len()); println!(); Ok(()) }
  • Para obtener información sobre la API, consulte ListLexicons en la Referencia de la API de AWS SDK para Rust.

En el siguiente ejemplo de código, se muestra cómo utilizar PutLexicon.

SDK para Rust
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

async fn make_lexicon(client: &Client, name: &str, from: &str, to: &str) -> Result<(), Error> { let content = format!("<?xml version=\"1.0\" encoding=\"UTF-8\"?> <lexicon version=\"1.0\" xmlns=\"http://www.w3.org/2005/01/pronunciation-lexicon\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.w3.org/2005/01/pronunciation-lexicon http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd\" alphabet=\"ipa\" xml:lang=\"en-US\"> <lexeme><grapheme>{}</grapheme><alias>{}</alias></lexeme> </lexicon>", from, to); client .put_lexicon() .name(name) .content(content) .send() .await?; println!("Added lexicon"); Ok(()) }
  • Para obtener información sobre la API, consulte PutLexicon en la Referencia de la API de AWS SDK para Rust.

En el siguiente ejemplo de código, se muestra cómo utilizar SynthesizeSpeech.

SDK para Rust
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

async fn synthesize(client: &Client, filename: &str) -> Result<(), Error> { let content = fs::read_to_string(filename); let resp = client .synthesize_speech() .output_format(OutputFormat::Mp3) .text(content.unwrap()) .voice_id(VoiceId::Joanna) .send() .await?; // Get MP3 data from response and save it let mut blob = resp .audio_stream .collect() .await .expect("failed to read data"); let parts: Vec<&str> = filename.split('.').collect(); let out_file = format!("{}{}", String::from(parts[0]), ".mp3"); let mut file = tokio::fs::File::create(out_file) .await .expect("failed to create file"); file.write_all_buf(&mut blob) .await .expect("failed to write to file"); Ok(()) }
  • Para obtener información sobre la API, consulte SynthesizeSpeech en la Referencia de la API de AWS SDK para Rust.

Escenarios

En el siguiente ejemplo de código, se muestra cómo:

  • Utilice Amazon Polly para sintetizar un archivo de entrada de texto sin formato (UTF-8) en un archivo de audio.

  • Cargue el archivo de audio en un bucket de Amazon S3.

  • Utilice Amazon Transcribe para convertir el archivo de audio en texto.

  • Muestre el texto.

SDK para Rust

Utilice Amazon Polly para sintetizar un archivo de entrada de texto sin formato (UTF-8) en un archivo de audio, cargue el archivo de audio en un bucket de Amazon S3, utilice Amazon Transcribe para convertir ese archivo de audio en texto y muestre el texto.

Para ver el código fuente completo y las instrucciones de configuración y ejecución, consulte el ejemplo completo en GitHub.

Servicios utilizados en este ejemplo
  • Amazon Polly

  • Amazon S3

  • Amazon Transcribe