Muitas pessoas vão querer usar a entrada de voz do WeChat diretamente, pois é sempre mais rápido falar do que digitar.
Ao contrário do comum .mp3
responder cantando .wav
O formato é diferente, a entrada de voz do WeChat usa o padrão .amr
Formato.
Abaixo está um webhook recebido pelo servidor do desenvolvedor do WeChat, indicando que uma mensagem de voz foi recebida de um usuário no número público, e você pode ver o formato da seguinte forma .amr
.
Muitos serviços STT (Speech to Text) suportam apenas o primeiro, o que gera um requisito: como combinamos o .amr
é convertido para o formato .mp3
Formato?
prescrição
No início, eu queria usar Laf
solução, que mais tarde se descobriu ser Laf
estar localizado em funcionar como um serviço solução que não oferece suporte ao uso de sistemas de arquivos, como o fs
Manipular arquivos no servidor.
Então, vi uma ideia de solução no GitHub[2]: Iniciar um expresso
usando o serviço fluent-ffmpeg
comandante-em-chefe (militar) .amr
converter .mp3
O arquivo é então armazenado temporariamente no servidor para ser usado pelo autor da chamada.
Esta solução pressupõe que o servidor tenha sido pré-instalado com o FFmpeg
ou então fluent-ffmpeg
não estará disponível.
"Isso não é uma simples função como serviço", pensei comigo mesmo. Eu mesmo sou um novato em back-end e operações, e costumava ser totalmente voltado para o Serverless, concentrando-me nas interações de front-end com os usuários. Agora isso é um pouco desafiador para mim.
No entanto, lembro-me do Sealos, que foi lançado há algum tempo Devbox
A publicidade parece estar tentando compensar isso. Laf
Essas funções como serviço são insuficientes.
"Eu não poderia implementar o serviço como descrevi acima no Devbox?" E assim começa a transformação (pit-stepping).
Devbox usando o Body Sense
O que é o Devbox pode ser visto na introdução:
Gostaria de falar sobre sua experiência de desenvolvimento em particular aqui.
Porque isso afeta muito sua percepção de Devbox
O entendimento e os desvios que fiz, portanto, este é um parágrafo de dicas de uso ou conclusões que coloquei aqui para discutir.
existir Devbox
Além disso, todos os processos de desenvolvimento sãodireto.
No início, não me senti muito à vontade com ele, mas ele funciona exatamente como nosso IDE local Conectar-se ao host SSH
vamos dar uma olhada na função Claude Uma observação sobre isso:
O Devbox permite que você evite IP ou nome de domínio do servidor de registro
/ Digite o número da porta SSH
/ Digite o nome de usuário ou a senha do servidor (ou a chave SSH)
O processo é apenas um simples toque no botão abaixo.
Estou usando Windsurf Após o primeiro clique, meu Windsurf tentou se conectar ao servidor remoto. Qualquer alteração que você fizer no IDE depois disso estará, na verdade, operando o servidor remoto.
Incluindo, correndo pnpm i
Ou outras ordens, todas elas.
Mais importante ainda, todas as suas ações, incluindo a execução de comandos, acabam na interface do usuário da Web do Devbox com um clique no botão versão de lançamento
Quando todos (novamente, incluindoExecução do comando
) é empacotado em uma imagem do docker, que é equivalente a um instantâneo do estado atual da máquina virtual.
Portanto, todas as dependências e o software subjacente que instalamos no ambiente de desenvolvimento do Devbox (como oFFmpeg
), em versão de lançamento
Depois disso, não foi necessário refazer nossas etapas no ambiente de produção, mas, imediatamente, todos os pré-requisitos foram instalados.
Quando você entender isso, finalmente entenderá por que Devbox
A publicidade sempre dizia: finalmente não precisamos nos preocupar com problemas de dependência e conflitos de número de versão em ambientes de produção.Porque o ambiente de produção é um espelho completo do ambiente de desenvolvimento!
prático
Com o entendimento acima sobre o Devbox
A parte prática da implementação é relativamente simples depois que o conhecimento do
1. selecione express no Devbox
2. abrir com o IDE
Conforme mencionado acima, o uso de Código VS
/ Cursor
/ Windsurf
Conecte-se ao servidor para desenvolvimento.
Depois de se conectar ao servidor, selecione todos os arquivos Cmd + A
remova o arquivo de modelo padrão em sua totalidade.
3. download do código
Nós simplesmente escolhemos expresso
portanto, o modelo padrão git
, nó
responder cantando pnpm
Todos instalados.
Agora vamos abrir um terminal Terminal e usar git
Código de download.
git clone https://github.com/yenche123/liubai.git
Aqui vai uma dica: se você digitar comandos no IDE do host SSH, sentirá um pouco de atraso, porque você está realmente operando o terminal no servidor remoto, é claro que haverá um atraso entre vocês.
A experiência anterior de desenvolvimento consistia em desenvolver localmente, empacotar o código e carregá-lo no servidor, usando o Devbox
Em seguida, tudo é operado no servidor, desenvolvimento como implantação.
4. instalar o FFmpeg
Continue digitando o seguinte comando no Terminal para concluir FFmpeg
Instalação de.
sudo apt update && sudo apt upgrade # pressione Y para continuar sudo apt install ffmpeg # pressione Y para continuar ffmpeg -version # verifique se a instalação foi bem-sucedida
A última linha permite que você verifique se a instalação foi bem-sucedida.
Novamente, não há necessidade de refazer as etapas em um ambiente de produção após essa instalação, pois o software será incluído diretamente na imagem. É incrível, não é?
5. escrever entrypoint.sh
Estamos no diretório raiz, que é o mesmo diretório que o diretório liubai/
A posição de irmão (mostrada acima) cria um ponto de entrada.sh
que diz o seguinte.
#!/bin/bash cd /home/Devbox/project/liubai/liubai-backends/liubai-ffmpeg pnpm dev
Esse arquivo serve para informar ao servidor no ambiente de produção como iniciar o serviço que desejamos após a inicialização da máquina.
Aqui, estamos dizendo à máquina para localizar a pasta de destino primeiro liubai-ffmpeg
Em seguida, execute o desenvolvimento do pnpm
para iniciar o expresso
Serviços.
6. autorização do entrypoint.sh
Também no diretório raiz, executamos o seguinte comando para o ponto de entrada.sh
Adicione permissões de executável.
chmod +x entrypoint.sh
7. instalação de dependências
Vamos abri-lo. liubai-ffmpeg
para instalar as dependências necessárias:
cd /home/Devbox/project/liubai/liubai-backends/liubai-ffmpeg pnpm i
8. iniciar serviços no ambiente de desenvolvimento
Voltando ao diretório raiz, vamos simular a inicialização do serviço novamente:
cd /home/Devbox/project bash entrypoint.sh
Ver a mensagem de impressão como mostrado acima significa que iniciamos o ambiente de desenvolvimento na máquina com o comando amr
classificador para ações repetidas mp3
de serviços!
Vamos voltar para Devbox
Na interface do usuário da Web, copie o endereço público.
Em seguida, insira na barra de endereços de seu navegador /olá
Se você puder ver a tela como a mostrada abaixo, isso significa que o serviço fornecido foi iniciado com êxito.
Agora, a emenda. /new?url=seu arquivo amr&id=carimbo de data/hora atual em milissegundos
E você recebe um amr
converter mp3
O serviço!
9. implantação no ambiente de produção
Clicamos na interface do usuário da Web do Devbox versão de lançamento
.
É normal que seu IDE se desconecte brevemente durante o processo de liberação.
Após a postagem, clicamos em ficar on-line
Basta clicar em Finish de acordo com a configuração mínima.
Depois de aguardar alguns minutos, você terá outro link acessível ao público, que é o link do ambiente de produção amr
converter mp3
Serviço!
git commit no Devbox
No Devbox, talvez queiramos fazer um commit do git após o desenvolvimento, o que exige que o servidor remoto tenha acesso push ao repositório remoto.
Aqui está um exemplo do que encontrei, usando o GitHub como exemplo.
Executar no terminal git push origin seu nome de ramo
Ao fazer isso, o Terminal abre uma página do GitHub no navegador e solicita que você insira o código de autorização do IDE, conforme mostrado na segunda imagem abaixo.
No entanto, essa operação pode não ser autorizada, e uma notificação aparecerá no canto inferior direito do IDE solicitando que você use a opção Acesso pessoal tokens
Execute a autorização conforme mostrado abaixo:
Após a conclusão da autorização, então git push
Um pouco e tudo ficará bem.
Experimente agora
O serviço mencionado acima já foi implementado no "White Note". Agora, siga o número público do WeChat do "White Note", envie uma mensagem de voz para ele e ele ligará para o número mencionado acima amr
classificador para ações repetidas mp3
Serviços.
Dos 7 Tigers que atualmente são grandes fornecedores de modelos, o MiniMax é o que permite que os desenvolvedores mensagens
diretamente no mp3
formal base64
. Veja isso, e não se atreva a tentar, usando multimodal nativamente no WeChat!
Para resumir o que foi dito acima, usamos o Devbox
Terminou um amr
classificador para ações repetidas mp3
de serviços.
No centro deste documento está o Devbox usando o Body Sense Nessa seção, apresentamos brevemente o Devbox
Diferenças em relação ao desenvolvimento tradicional devido a Conectar-se ao host SSH
recursos, operamos diretamente o servidor remoto no qual concluímos a instalação do software e o desenvolvimento do código principal.
por meio de Devbox
Otimização do contêiner subjacente, o que nos permite ter oDesenvolva conforme sua implantaçãoA capacidade de validar os resultados diretamente no servidor de desenvolvimento após o desenvolvimento; enquanto o Devbox
A capacidade de tirar um instantâneo de todo o virtualizador resolve o problema de ambiente de desenvolvimento (computador)
responder cantando ambiente de produção
Isso nos permite obter resultados prontos para uso em ambientes de produção sem ter que passar pelo processo de instalação de dependências e do software subjacente.