You need more valid doors
Villagers will mate depending on the number of valid doors (beds[BE only][upcoming: JE 1.14]). If "willing" (see below), villagers will mate as long as the population is less than 35% (Bedrock Edition: 100%) of valid doors (beds[BE only][upcoming: JE 1.14]), rounded down. The type of villager that spawns is independent of the villager's parents.[until JE 1.14] All baby villagers are initially unemployed.[upcoming: JE 1.14]
A valid door is any door within the village radius where the number of "outside" spaces within 5 blocks in a straight line on one side of the door is not the same as the number of "outside" spaces within 5 blocks on the other side of the door. A space is considered to be "outside" if it has nothing but transparent blocks above it all the way to the sky.[Java and Legacy Console editions only][until JE 1.14]
A census is periodically taken to determine the current population of the village. All villagers within the horizontal boundary of the village and within 5 vertical blocks[Java and Legacy Console editions only] of the center will be counted as part of the population to determine if continued villager mating is allowed. However, any villager within the horizontal boundary of the village and within the spherical boundary of the village will attempt to enter mating mode as long as there is at least one villager within the boundary. If two villagers simultaneously enter mating mode while they are close to one another, they will mate with each other and produce a child.
The population needs to be under 35 percent of valid doors. Also, as you have stated, the villagers need to be willing to breed.
Willingness
Additionally, villagers must be "willing" in order to breed. After mating, they will no longer be willing, and must be made willing again.
Villagers may become willing when the player trades with them. Willingness is granted the first time a new offer is traded, or at a one-in-five chance on subsequent trades. Green particles will appear if the villager becomes willing by trading. This will not cause them to immediately seek out a mate, however.
Villagers can also become willing by having either 3 bread, 12 carrots, 12 potatoes, or 12 beetroots[Not in Java Edition][2] in one stack in their inventory. Any villager with an excess of food (usually farmers) will throw food to other villagers, allowing them to pick it up and obtain enough food to become willing. The player can also throw bread, carrots, beetroots, or potatoes at the villagers themselves to encourage breeding. Villagers will consume the required food upon becoming willing.Willingness
Additionally, villagers must be "willing" in order to breed. After mating, they will no longer be willing, and must be made willing again.
Villagers may become willing when the player trades with them. Willingness is granted the first time a new offer is traded, or at a one-in-five chance on subsequent trades. Green particles will appear if the villager becomes willing by trading. This will not cause them to immediately seek out a mate, however.
Villagers can also become willing by having either 3 bread, 12 carrots, 12 potatoes, or 12 beetroots[Not in Java Edition][2] in one stack in their inventory. Any villager with an excess of food (usually farmers) will throw food to other villagers, allowing them to pick it up and obtain enough food to become willing. The player can also throw bread, carrots, beetroots, or potatoes at the villagers themselves to encourage breeding. Villagers will consume the required food upon becoming willing.
This is essentially a guide of how to breed villagers, and it should help with your breeding problems.