Python llama a la interfaz API de síntesis de voz de Xunfei para realizar la conversión de texto a voz

Este artículo presenta principalmente un ejemplo detallado de cómo Python llama a la interfaz API de síntesis de voz de Xunfei para realizar el método de texto a voz. Los amigos que lo necesiten pueden consultarlo como referencia. Espero que pueda ser útil. Les deseo mucho progreso y una pronta promoción y aumento salarial

Preparación

Antes de escribir código y llamar a la API, primero se deben preparar los siguientes elementos:

  • Cuenta de plataforma abierta de Xunfei : los usuarios pueden registrarse en la plataforma abierta de Xunfei de forma gratuita y crear aplicaciones para obtener access_key y appid.
  • biblioteca de solicitudes : Requests es una biblioteca de solicitudes HTTP hermosa y simple que procesa todos los datos requeridos que enviamos, y obtiene y analiza las respuestas por nosotros. Puede ingresarlo en la línea de comando  pip install requests para instalarlo.
  • Bibliotecas de terceros como FFmpeg o pydub : para convertir archivos de audio de un formato a otro.

Enviar petición

Usaremos una biblioteca en Python  requests para enviar una solicitud HTTP a la API de síntesis de voz de Xunfei, que la convertirá en un archivo de voz. Los usuarios pueden elegir entre múltiples tipos de voz diferentes en hasta 11 idiomas diferentes para convertir.

Cabe señalar que para acceder al servicio API, también debe seleccionar el protocolo de comunicación HTTP, configurar el encabezado HTTP, obtener la hora del sistema Unix y crear la suma de verificación MD5 de acuerdo con los parámetros, etc., para garantizar que la API la respuesta es correcta

Aquí hay un código de muestra:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dieciséis

17

18

19

20

21

import hashlib

import base64

import json

import time

import requests

url = "http://api.xfyun.cn/v1/service/v1/tts"

params = {

    "text": "要转换为语音的文本",

    "lang": "zh_cn",

    "voice_name": "xiaoyan",

    "engine_type": "intp65",

}

headers = {

    "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"# 请求头部

    "X-Appid": "YOUR_APP_ID"# 替换为您的appid

    "X-CurTime": str(int(time.time())),

    "X-Param": base64.b64encode(json.dumps(params).replace(' ', '').encode('utf-8')),

    "X-CheckSum": hashlib.md5((YOUR_API_SECRET + str(int(time.time())) + base64.b64encode(

        json.dumps(params).replace(' ', '').encode('utf-8')).decode('utf-8')).encode('utf-8')).hexdigest(),

# 认证授权信息

response = requests.post(url, data=params, headers=headers)

Tenga en cuenta que en el código de ejemplo anterior, después de que el código se ejecuta con éxito, nuestra respuesta devuelve una transmisión de MP3. El cuerpo de la respuesta se puede  content obtener utilizando la propiedad.

1

2

with open('audio.mp3', 'wb') as f:

    f.write(response.content)

conversión de formato

Después de obtener el archivo MP3 único que contiene datos de audio, debemos convertir su formato para adaptarlo a varios escenarios en los que queremos usar archivos de audio. Aquí, presentamos dos bibliotecas populares de terceros.

pydub

pydub es una biblioteca de procesamiento de audio que utiliza FFmpeg y otras bibliotecas de procesamiento de audio para facilitar la conversión de archivos wav a varios formatos. Aquí se explica cómo instalar la biblioteca pydub:

1

pip install pydub

然后,以下代码使用pydub将MP3文件转换为WAV文件:

1

2

3

from pydub import AudioSegment

sound = AudioSegment.from_file("audio.mp3", format="mp3")

sound.export("audio.wav", format="wav")

请注意,此处只需更改导入和输出文件路径就可以将mp3文件转换为任何常见的音频格式。

FFmpeg

另一个常见的音频工具是 FFmpeg,它同样能很好地完成音频格式转换的任务。

下载并配置你的操作系统上的FFmpeg二进制版或源代码,或者选择自己偏好的FFmpeg API Python端口(如ffpy)。

然后,以下代码调用FFmpeg将 MP3 文件转换为 WAV 文件:

1

2

3

4

import ffmpeg

input_audio = ffmpeg.input('audio.mp3')

output_audio = ffmpeg.output(input_audio, 'audio.wav')

ffmpeg.run(output_audio)

以上就是Python调用讯飞语音合成API接口来实现文字转语音的详细内容。

点击拿去
50G+学习视频教程
100+Python初阶、中阶、高阶电子书籍

Supongo que te gusta

Origin blog.csdn.net/ai520wangzha/article/details/130967067
Recomendado
Clasificación