Análisis y procesamiento de señales de voz basado en Matlab App Designer (3): Diseño de aplicaciones

Continuación de lo anterior: https://blog.csdn.net/weixin_53877178/article/details/122475951

Tabla de contenido

1. Tareas de la asignatura

2. Contenido, pasos y requisitos

(1) Adquisición de señales de voz

(2) Análisis de la señal del habla

(3) Filtrado de señales de voz

(4) Diseño de aplicaciones

1) Uso de componentes relacionados

2) Agregue sus propias variables globales en la aplicación

3) Informe de errores y función de aviso

Informe de errores y ejemplo de código de función de solicitud

4) función de salida

instancia de función de salida


1. Tareas de la asignatura

2. Contenido, pasos y requisitos

(1) Adquisición de señales de voz

(2) Análisis de la señal del habla

(3) Filtrado de señales de voz

(4) Diseño de aplicaciones

1) Uso de componentes relacionados

Simplemente arrastre el componente que desee de la biblioteca de componentes a la vista de diseño.

Haga doble clic en el área de exploración de componentes a la derecha para modificar el nombre del componente.

①Etiquetas: se pueden usar para agregar títulos, etc.

Haga doble clic para editar el contenido del texto y el inspector en la esquina inferior derecha puede modificar las propiedades relacionadas (tamaño de fuente, color, alineación, etc.).

②Botón: puede agregar una función de devolución de llamada, haga clic para lograr la función deseada.

Haga clic con el botón derecho para agregar una función de devolución de llamada para ingresar a la vista de código para el diseño de código.

③Botón de grupo de radio: puede realizar una selección multifunción, como paso bajo, paso alto, paso de banda y rechazo de banda.

Haga clic con el botón derecho para agregar la función de devolución de llamada Filter_natureSelectionChanged (Filter_nature tiene su propio nombre), y la vista de código genera automáticamente la función Filter_natureSelectionChanged (aplicación, evento) y selectedButton = app.Filter_nature.SelectedObject; use la declaración de cambio para realizar la función correspondiente del opción correspondiente. En otras funciones de devolución de llamada, app.Filter_nature.SelectedObject también se puede usar para realizar operaciones relacionadas (también se puede usar sin agregar la función de devolución de llamada Filter_natureSelectionChanged).

④ Editar campo (valor): Realice la función del cuadro de entrada, como ingresar el índice de diseño en el cuadro para completar el diseño del filtro.

Haga doble clic en el área de solicitud para agregar una solicitud. El formato del valor es: FS = app.sample_frequency.Value; (app.sample_frequency tiene su propio nombre), app.sample_frequency.Value es el mismo que el anterior y es también una variable global.

⑤Spinner: realice la función de ajuste, como el volumen del reproductor de música.

El método para agregar una función de devolución de llamada es el mismo que el de un botón.

⑥Editar campo (texto): Se puede utilizar como entrada o salida. La entrada y salida son similares a "editar campo (valor)".

Salida: agregue como app.sample_frequency.Value = "Ventana de Hanning" en una función de devolución de llamada; 

⑦Área de coordenadas: Dibuje formas de onda en el dominio del tiempo y en el dominio de la frecuencia, e incluso muestre imágenes.

 Haga doble clic en el área correspondiente para cambiar el título, las coordenadas horizontales y verticales. Agregue como plot(app.original_time,t,x); a una función de devolución de llamada para dibujar la forma de onda. app.original_time es el nombre de los ejes.

2) Agregue sus propias variables globales en la aplicación

En el navegador de código de la izquierda, seleccione Propiedades, haga clic en el triángulo inferior junto a ➕ para agregar propiedades privadas (variables globales en esta aplicación).

 La vista de código generará código en consecuencia, excepto que el contenido interno es un ejemplo, que se puede eliminar directamente.

 Defina el nombre de la variable como se muestra arriba. Use variables globales en otras funciones y escríbalo como app.path para realizar la asignación y aplicación de variables globales.

3) Informe de errores y función de aviso

Error:

f = errordlg(msg, title);

msg: el contenido de salida que desea.

title: El título del diálogo.

pista:

msgbox(message)
%msgbox('显示内容')

msgbox(message,title)
%msgbox('显示内容','标题')

msgbox(message,title,icon)
%msgbox('显示内容','标题','系统图标')
%系统图标主要有none,error,help,warn

Informe de errores y ejemplo de código de función de solicitud

[filename,pathname]=uigetfile({'*.wav;*.mp3','*.wav;*.mp3'},'选择声音文件');
if isequal([filename pathname],[0,0])
    errordlg("没有选中文件","错误")
else
    app.path = strcat(pathname, filename);%选择的声音文件路径
    msgbox("读取成功","提示")
end

Esta parte del ejemplo de código también incluye la adquisición de la ruta del archivo.

4) función de salida

Agregue un botón, haga clic con el botón derecho para agregar una función de devolución de llamada.

Uso de questdlg:

answer = questdlg(quest);
answer = questdlg(quest,dlgtitle);
answer = questdlg(quest,dlgtitle,defbtn);
answer = questdlg(quest,dlgtitle,btn1,btn2,defbtn);

answer = questdlg(quest); Crea un cuadro de diálogo modal que hace una pregunta y devuelve la respuesta del usuario: 'Sí', 'No', 'Cancelar' o '.

De forma predeterminada, el cuadro de diálogo tiene tres botones estándar etiquetados Sí, No y Cancelar.

Si el usuario hace clic en uno de los botones, el valor de respuesta es el mismo que la etiqueta del botón presionado.

El valor de respuesta es un vector de caracteres vacío (' ') si el usuario hace clic en el botón de cerrar (X) en la barra de título del cuadro de diálogo o presiona la tecla Esc.

Si el usuario presiona la tecla Retorno, el valor de respuesta es el mismo que la etiqueta del botón seleccionado por defecto.

answer = questdlg(quest,dlgtitle) ; Especifica el título del diálogo.

answer = questdlg(quest,dlgtitle,defbtn) ; Especifica qué botón es el botón predeterminado cuando el usuario presiona la tecla Retorno en el teclado. El valor defbtn debe coincidir con una de las etiquetas del botón.

answer = questdlg(quest,dlgtitle,btn1,btn2,defbtn) ; Personaliza dos botones estándar usando los valores btn1 y btn2 como etiquetas de botones. Se elimina el tercer botón estándar. El valor defbtn debe coincidir con el valor de btn1 o btn2.

Si el usuario presiona la tecla Retorno en el teclado y el valor defbtn no coincide con ninguna etiqueta de botón, el cuadro de diálogo permanece abierto.

instancia de función de salida

choice = questdlg("是否退出《语音信号的处理》?","退出","是","否","否");
switch choice
    case "是"
        delete(app.UIFigure)
        return
    case "否"
        return
end

La pantalla del efecto final:

Análisis y procesamiento de la señal del habla_哔哩哔哩_bilibili

Adquisición completa de recursos:

https://download.csdn.net/download/weixin_53877178/76116847

Supongo que te gusta

Origin blog.csdn.net/weixin_53877178/article/details/122486519
Recomendado
Clasificación