natural-som-texto-para-fala

3

Primeiramente, sei que esta pergunta foi feita, Natural Sounding Text to Speech?

Estou atrás de algum tipo de mecanismo de texto para fala, mas para converter um ebook / texto completo. Simplificando, não tenho mais tempo para sentar e ler, mas viajo muito, então aproveite para ouvir audiobooks e tentei todas as sugestões listadas ... mas ...

Eu realmente gosto da sugestão e do pequeno script do user85321, seu compacto e direto ao ponto, mas, por alguma razão, qualquer texto maior que alguns parágrafos termina em uma mensagem de erro para muitos argumentos:

bash: ./speech.sh: Argument list too long

Existe alguma maneira de alterar o script ou adicionar ao script para evitar isso?

Eu gosto da voz pico2wav, há menos lag / pausas como com googleTTs, sim, há a questão da ortografia estranha "THE" em vez de "The", mas tudo somado parece fluir um pouco melhor e eu prefiro sobre festival / embrola.

Eu até tentei os scripts usando os GoogleTTs listados na postagem original, incluindo aquele que tem o recurso de usar pico2wav como backup off-line. Infelizmente, mesmo depois de dividir o livro em pedaços por meio de divisão, eles param em intervalos aleatórios, então, tentar juntar partes aleatórias da fala é uma PITA real.

Meu último porto de escala foi o plugin de leitura de texto para o libreoffice (que usa pico2wav), isso parece ter o mesmo problema com args, já que depois de algum tempo ele se aproxima.

Depois de vasculhar isso nos últimos meses, estou agora em uma parede de tijolos, então qualquer ajuda ou sugestão seria muito apreciada.

Obrigado por ler meu rabisco.

    
por Jan Matulewicz 20.10.2016 / 11:46

2 respostas

1

Por alguma razão, pico2wave só aceita entrada como argumentos. Portanto, o tamanho do texto que pode processar de uma vez é limitado pelo tamanho máximo do argumento. Você poderia talvez usar xargs para dividir o texto em partes que não excedam esse limite. Execute esse script usando xargs desta maneira:

xargs -a input.txt ./speech.sh

Relevante xargs opção que você não precisará usar:

--max-chars=max-chars
-s max-chars
      Use at most max-chars characters per command line, including the
      command  and  initial-arguments and the terminating nulls at the
      ends of the argument strings.   The  largest  allowed  value  is
      system-dependent, and is calculated as the argument length limit
      for exec, less the size of your environment, less 2048 bytes  of
      headroom.   If this value is more than 128KiB, 128Kib is used as
      the default value; otherwise, the default value is the  maximum.
      1KiB is 1024 bytes.
    
por muru 20.10.2016 / 13:15
0

Eu tive um problema semelhante e encontrei o seguinte script que funcionou para mim: link Este é um script python que irá dividir o arquivo de texto em pedaços e passá-los para pico2wave. Em seguida, ele combina todos os arquivos .wav de saída em um .wav gigante.

    
por Jeff 11.03.2017 / 04:17